From 8cc891b06558d9998723942aacd20ca3d894336e Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期五, 22 九月 2023 18:05:16 +0800 Subject: [PATCH] 修改参照 --- Source/UBCS-WEB/src/components/refer/vciWebRefer.vue | 6 Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue | 3 Source/UBCS-WEB/src/components/FormTemplate/index.vue | 17 ++- Source/UBCS-WEB/src/components/code-dialog-page/maxSerialnumDialog.vue | 7 + Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue | 129 ++++++++++++++++++++++++++++++-- Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue | 28 +++--- 6 files changed, 156 insertions(+), 34 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue index 3e341d5..9f69e9b 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue @@ -211,10 +211,11 @@ trigger = "blur"; } let fieldMapKey='' - if( formItem.type == "refer"){ - if(!formItem.fieldMap){ - fieldMapKey=formItem.field+'Id' - } + if( formItem.type == "refer" && !formItem.fieldMap){ + fieldMapKey=formItem.field+'Id' + formItem.fieldMap={} + formItem.fieldMap[fieldMapKey]='id' + formItem.fieldMap[formItem.field+'id']='id' } let columnItem = { label: formItem.text, @@ -249,7 +250,7 @@ title: formItem.text, showField: formItem.showField || formItem.field, field: formItem.field, - fieldMap:formItem.fieldMap || {fieldMapKey:'id'}, + fieldMap:formItem.fieldMap || {}, placeholder: formItem.inputTip, options: formItem.referConfig } @@ -294,8 +295,121 @@ this.geDictData(dictKeys); this.getFormDetail(); - // console.log('selfColumnConfig',this.selfColumnConfig) + }, + //淇敼绾ц仈椤� + changeChildItem(items,TreeValue) { + let column = this.option.column; + let group = this.option.group; + items.forEach((item) => { + let formItem = this.resetFormConfig(item); + if (formItem.field == "lcstatus") { + formItem.field = formItem.field + "_text"; + formItem.readOnly = true; + } + // 璁剧疆琛ㄥ崟鏍¢獙鐨勮鍒欙紝鏂囨湰 + let message = "璇烽�夋嫨"; + let trigger = "change"; + if (formItem.type === "text") { + message = "璇疯緭鍏�"; + trigger = "blur"; + } + let fieldMapKey = '' + if (formItem.type == "refer" && !formItem.fieldMap) { + fieldMapKey = formItem.field + 'Id' + formItem.fieldMap = {} + formItem.fieldMap[fieldMapKey] = 'id' + formItem.fieldMap[formItem.field + 'id'] = 'id' + } + let columnItem = { + label: formItem.text, + labelslot: true, + prop: this.$utilFunc.isValuableObj(formItem.referConfig) + ? formItem.showField || formItem.field + : formItem.field, + field: formItem.field, + type: this.columnType[formItem.type], + dicData: this.getDataList(formItem.type, formItem.data), + disabled: this.type === "detail" ? true : formItem.readOnly || (formItem.codeValueApplyStatus && formItem.codeValueApplyStatus == 2 ? true : false), + prepend: this.preOrSufFixShow("text", formItem.prefix), + append: this.preOrSufFixShow("text", formItem.suffix), + prefixIcon: this.preOrSufFixShow("icon", formItem.prefix), + suffixIcon: this.preOrSufFixShow("icon", formItem.suffix), + valueFormat: formItem.dateFormate, + format: formItem.dateFormate, + keyAttr: formItem.keyAttr, + value: (formItem.dicData && formItem.dicData.length > 0 && formItem.secType == "codefixedsec" ? formItem.dicData[0].id : null) || + (formItem.secType == "codedatesec" ? formItem.codeDateValue : null) || (TreeValue && formItem.secType == "codelevelsec" ? TreeValue : null), + placeholder: formItem.inputTip, + comboxKey: formItem.comboxKey, + tip: formItem.tooltips, + // hidden:formItem.secType && formItem.codeValueApplyStatus == 3 ? true : false, + // readonly:formItem.codeValueApplyStatus && formItem.codeValueApplyStatus == 2 ?true : false , + display: !formItem.hidden, + maxlength: formItem.maxlength, + filterable: true, + referConfig: + formItem.type == "refer" + ? { + title: formItem.text, + showField: formItem.showField || formItem.field, + field: formItem.field, + fieldMap: formItem.fieldMap || {}, + placeholder: formItem.inputTip, + options: formItem.referConfig + } + : {}, + span: formItem.span + ? formItem.span + : formItem.type === "textarea" + ? 24 + : this.localTrendsSpan, + rules: [ + { + required: formItem.required, + message: `${message}${formItem.text}`, + trigger, + }, + { + // 濡傛灉娌℃湁姝e垯鍒欏尮閰嶄换浣曞瓧绗� + pattern: formItem.verify ? formItem.verify : /[\s\S.]*/g, + message: formItem.tooltips, + trigger, + }, + ], + props: { + label: "value", + value: "key", + }, + }; + + if (group.length === 0) { + this.slotColumnList.forEach((index, colItem) => { + if (colItem.field == columnItem.field) { + this.slotColumnList[index] = columnItem; + column[index] = columnItem; + return; + } + }) + } else { + this.slotColumnList.forEach((index, colItem) => { + if (colItem.field == columnItem.field) { + this.slotColumnList[index] = columnItem; + return; + } + }) + group.forEach((index, groupItem) => { + groupItem.column.forEach((colIndex, colItem) => { + if (colItem.field == columnItem.field) { + group[index].column[colIndex] = columnItem; + return; + } + }) + }); + } + }); + this.$set(this.option, "column", column); + this.$set(this.option, "group", group); }, // 浣跨敤浼犲叆鐨勮〃鍗曟暟鎹厤缃� resetFormConfig(formItem) { @@ -404,7 +518,6 @@ ); }, setReferValue(data) { - debugger; if (data.field) { this.form[data.field] = data.value || ""; this.form[data.showField] = data.text || ""; @@ -447,8 +560,8 @@ this.form[key] = value.join(','); } } - this.$emit("getFormData", this.form); this.$emit("referConfigDataUpdate", data); + this.$emit("getFormData", this.form); } }, }, diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue index 886ce91..858400a 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue @@ -11,6 +11,7 @@ @opened="openDialog" > <FormTemplate + key="masterForm" data-key="masterForm" v-bind="$attrs" :type="type" :TreeValue="TreeValue" @@ -33,7 +34,8 @@ <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick"> <el-tab-pane label="鐮佸�肩敵璇�" name="codeApply" v-if="showCodeApply"> <FormTemplate - v-bind="$attrs" + key="codeApplyForm" data-key="codeApplyForm" + secDTOListv-bind="$attrs" :type="type" :selfColumnType="selfColumnType" :selfColumnConfig="selfColumnConfig" @@ -271,8 +273,8 @@ }, // 鑾峰彇鐮佸�肩敵璇锋暟鎹� getCodeRule() { - let that = this; - getCodeRule({ codeClassifyOid: that.codeClassifyOid }).then((res) => { + let that = this; + getCodeRule({codeClassifyOid: that.codeClassifyOid}).then((res) => { if (res.data && res.data.code === 200) { that.codeRuleOid = res.data.data.oid; const typeList = [ @@ -298,8 +300,8 @@ if (that.secVOList.length > 0 && that.type === "add") { that.showCodeApply = true; that.activeName = "codeApply"; - that.$nextTick(() => { - that.$refs.CodeApply.templateRender(that.secVOList,this.TreeValue); + this.$nextTick(() => { + that.$refs.CodeApply.templateRender(that.secVOList, this.TreeValue); }); } else { that.showCodeApply = false; @@ -316,16 +318,19 @@ // 鍙傜収缁勪欢鏁版嵁鍙樻洿 referConfigDataUpdate(data) { const { field } = data; + let childItems=[]; this.secVOList = this.secVOList.map((item) => { if (item.parentClassifySecOid === field) { this.$refs.CodeApply.form[item.oid] = undefined; this.$refs.CodeApply.form[item.name] = undefined; item.readOnly=false; item.referConfig.extraParams.parentClassifyValueOid=data.value; + childItems.push(item) } return item; }); - this.$refs.CodeApply.templateRender(this.secVOList,this.TreeValue); + //this.$refs.CodeApply.templateRender(this.secVOList,this.TreeValue); + this.$refs.CodeApply.changeChildItem(childItems); }, resembleQuerySubmit() { this.activeName = "resembleQuery"; diff --git a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue index 8b5bc4c..da4f9db 100644 --- a/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue +++ b/Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue @@ -853,6 +853,7 @@ { label: "鍙傜収閰嶇疆", prop: "referConfig", + width: 105 }, { label: "绾ц仈鏌ヨ灞炴��", @@ -897,7 +898,7 @@ { label: "鍙栧�艰寖鍥�", prop: "valueArea", - }, + } ] }, // 瀛樺偍琛ㄦ牸鏁版嵁 diff --git a/Source/UBCS-WEB/src/components/code-dialog-page/maxSerialnumDialog.vue b/Source/UBCS-WEB/src/components/code-dialog-page/maxSerialnumDialog.vue index e389526..155d24a 100644 --- a/Source/UBCS-WEB/src/components/code-dialog-page/maxSerialnumDialog.vue +++ b/Source/UBCS-WEB/src/components/code-dialog-page/maxSerialnumDialog.vue @@ -7,7 +7,7 @@ </el-form> <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick"> <el-tab-pane label="鏈�澶ф祦姘村彿" name="codeApply"> - <form-template v-bind="$attrs" type="add" :selfColumnType="selfColumnType" :trendsSpan="24" + <form-template key="codeApplyMaxForm" data-key="codeApplyMaxForm" v-bind="$attrs" type="add" :selfColumnType="selfColumnType" :trendsSpan="24" :selfColumnConfig="selfColumnConfig" ref="CodeApply" @getFormData="getCodeApplyFormData" @referConfigDataUpdate="referConfigDataUpdate"></form-template> </el-tab-pane> @@ -194,16 +194,19 @@ // 鍙傜収缁勪欢鏁版嵁鍙樻洿 referConfigDataUpdate(data) { const {field} = data; + let childItems=[]; this.secVOList = this.secVOList.map((item) => { if (item.parentClassifySecOid === field) { this.$refs.CodeApply.form[item.oid] = undefined; this.$refs.CodeApply.form[item.name] = undefined; item.readOnly = false; item.referConfig.extraParams.parentClassifyValueOid = data.value; + childItems.push(item) } return item; }); - this.$refs.CodeApply.templateRender(this.secVOList); + //this.$refs.CodeApply.templateRender(this.secVOList); + this.$refs.CodeApply.changeChildItem(childItems); }, isRequired(item) { return item.nullableFlag != "true"; diff --git a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue index 7ecbfa0..f73ca39 100644 --- a/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue +++ b/Source/UBCS-WEB/src/components/refer/vciWebRefer.vue @@ -1,8 +1,8 @@ <template> <div v-if="display"> - <vciWebReferTree ref="vciWebReferTree" v-if="refertype=='tree'" @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferTree> - <vciWebReferTable v-else-if="refertype=='table'" @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferTable> - <vciWebReferDefalut v-else @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferDefalut> + <vciWebReferTree :key="referConfig.field" :data-key="referConfig.field" ref="vciWebReferTree" v-if="refertype=='tree'" @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferTree> + <vciWebReferTable :key="referConfig.field" :data-key="referConfig.field" v-else-if="refertype=='table'" @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferTable> + <vciWebReferDefalut :key="referConfig.field" :data-key="referConfig.field" v-else @setValue="setValue" :value="value" :text="text" :title="title" :disabled="disabled" :referConfig="referConfig"></vciWebReferDefalut> </div> </template> diff --git a/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue b/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue index fa3ea8d..f1ac96e 100644 --- a/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue +++ b/Source/UBCS-WEB/src/components/refer/vciWebReferTree.vue @@ -1,5 +1,6 @@ <template> - <avue-input-tree ref="referTree" :props="props" :disabled="disabled" :lazy="lazy" :tree-load="treeLoad" :node-click="nodeClick" :checked="checked" :blur="valueChange" :leaf-only="referConfig.onlyLeaf" :multiple="isMuti" v-model="value" :placeholder="title" :dic="treeData"></avue-input-tree> + <avue-input-tree ref="referTree" :props="props" :disabled="disabled" :lazy="lazy" :tree-load="treeLoad" :node-click="nodeClick" :checked="checked" + :leaf-only="referConfig.onlyLeaf" :multiple="isMuti" v-model="value" :placeholder="title" :dic="treeData"></avue-input-tree> </template> <script> @@ -11,6 +12,7 @@ props:["referConfig","value","text","title","disabled"], data() { return { + visible: false, options: this.referConfig.options, lazy: this.referConfig.options.loadType == 'node', isMuti:("true" == this.referConfig.options.isMuti || this.referConfig.options.isMuti == true || this.referConfig.options.muti == true) ? true : false, @@ -127,14 +129,15 @@ }, getTree() { + //鍔犺浇鍏ㄩ儴 getTree(this.params, this.treeUrl).then(res => { res.data.map(item => { - if (!item.attribute) { - item.attribute = { + if (!item.attributes) { + item.attributes = { data: {} } } else { - item.attribute.data = item.attribute.data || {} + item.attributes.data = item.attributes.data || {} } return { ...item, @@ -145,6 +148,7 @@ }) }, treeLoad: function (treeNode, resolve) { + //閫愮骇鍔犺浇 const parentOid = (treeNode.level === 0) ? 0 : treeNode.data.oid; this.params.parentOid=parentOid.indexOf('@vcitreesep@') > -1 ? parentOid.split('@vcitreesep@')[1] : parentOid; this.params.parentValue=this.params.parentOid; @@ -158,12 +162,12 @@ } getLazyTree(this.params,this.treeUrl).then(res => { resolve(res.data.data.map(item => { - if(!item.attribute){ - item.attribute={ + if(!item.attributes){ + item.attributes={ data:{} } }else{ - item.attribute.data=item.attribute.data || {} + item.attributes.data=item.attributes.data || {} } return { ...item, @@ -178,17 +182,13 @@ } }, checked(checkedNode, checkedData) { - this.checkedData=checkedData - }, - valueChange(){ - if(this.isMuti){ - // this.setValue(this.checkedData) - } + this.setValue(checkedData) }, setValue:function (checkedData){ + this.checkedData=checkedData var value = []; var text = []; - const textSep =this.config.textSep; + const textSep =this.config.textSep;debugger; for(var j =0;j<checkedData.checkedNodes.length;j++){ const item=checkedData.checkedNodes[j]; var v=this.config.valueField.indexOf("attribute.")>=0?(item.attributes[this.config.valueField.replace("attribute.","")] || item.attributes.data[this.config.valueField.replace("attribute.","")]):(item.attributes[this.config.valueField] || item[this.config.valueField] || item.attributes.data[this.config.valueField]) -- Gitblit v1.9.3