From e20bf5092ee15f5569bc3939204a0f598b75d15b Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期一, 11 九月 2023 09:40:15 +0800
Subject: [PATCH] 编码规则-分类码段-码值管理树折叠
---
Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue | 499 ++++++++++--------------------------------------------
1 files changed, 97 insertions(+), 402 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
index 3023328..610ff04 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
@@ -5,6 +5,7 @@
<avue-form
v-model="form"
:option="option"
+ v-loading="loading"
ref="form"
:style="{ minHeight: loading ? '300px' : '' }"
:key="updateIndex"
@@ -49,7 +50,7 @@
// 榛樿绂佺敤鍏冪礌
disabledProp: {
type: Array,
- default: () => ["id"],
+ default: () => ["id", "lcstatus"],
},
templateOid: {
type: String,
@@ -79,6 +80,11 @@
type: Object,
default: () => ({}),
},
+ // 涓�琛屾斁鍑犱釜琛ㄥ崟
+ trendsSpan: {
+ type: Number,
+ default: 8,
+ }
},
data() {
return {
@@ -102,395 +108,6 @@
date: "date",
refer: "refer",
},
- // 鍋囨暟鎹�
- testItems: [
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "id",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "浼犲�肩鐢ㄥ姛鑳�",
- tooltips: "",
- type: "combox",
- unique: false,
- verify: "",
- },
- {
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "state",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: true,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "鎺ュ彛绂佺敤鍔熻兘",
- tooltips: "",
- type: "combox",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "oldcode",
- hidden: false,
- keyAttr: false,
- prefix: "el-icon-search",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "鏂囨湰鍚庣紑娴嬭瘯",
- text: "鍓嶅悗缂�鍔熻兘",
- tooltips: "",
- type: "text",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "materialname",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: true,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "姝e垯鏍¢獙鍔熻兘",
- tooltips: "璇疯緭鍏ユ暟瀛�",
- type: "text",
- unique: false,
- verify: /^[0-9]+$/g,
- },
- {
- comboxKey: null,
- customClass: null,
- data: [
- {
- attributes: {},
- key: "model_type",
- value: "妯″瀷",
- },
- {
- attributes: {},
- key: "part_type",
- value: "闆朵欢",
- },
- ],
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "dataSelect",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "鐩存帴杩斿洖涓嬫媺",
- tooltips: "",
- type: "combox",
- unique: false,
- verify: "",
- },
- {
- comboxKey: "formTemplateTest",
- customClass: null,
- data: [],
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "dictSelect",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "瀛楀吀杩斿洖涓嬫媺",
- tooltips: "",
- type: "combox",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "firstfl",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "鏁板瓧杈撳叆妗�",
- tooltips: "",
- type: "number",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "yyyy-MM-dd HH:mm:ss",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "datetime",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "鏃ユ湡鏃堕棿閫夋嫨鍣�",
- tooltips: "",
- type: "datetime",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "time",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "鏃堕棿閫夋嫨鍣�",
- tooltips: "",
- type: "date",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "false",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "xiaoshouwl",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "寮�鍏�",
- tooltips: "",
- type: "truefalse",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "鎴戞槸榛樿鍊�",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "tuhao",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "榛樿鍊煎姛鑳�",
- tooltips: "鎻愮ず",
- type: "text",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "xinghaoguige",
- hidden: false,
- keyAttr: true,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "灞炴�у叧閿��",
- tooltips: "",
- type: "text",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "jiliangdw",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- tip: "鎴戞槸鎻愮ず鍔熻兘",
- required: false,
- selectLibFlag: "",
- showField: "jiliangdwname",
- suffix: "",
- text: "鎻愮ず鍔熻兘",
- tooltips: "",
- type: "text",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "textarea",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "鏂囨湰鍩�",
- tooltips: "",
- type: "textarea",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "cz",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: true,
- referConfig: {},
- required: false,
- selectLibFlag: "",
- showField: "depId",
- suffix: "",
- text: "鍙傜収",
- tooltips: "",
- type: "refer",
- unique: false,
- verify: "",
- },
- ],
- trendsSpan: 8,
defaultValue: {},
// 琛ㄥ崟灞炴��
attributes: [],
@@ -500,6 +117,16 @@
mounted() {
this.handleResize();
},
+ computed: {
+ localTrendsSpan() {
+ if (this.trendsSpan) {
+ return this.trendsSpan;
+ } else {
+ let windowWidth = document.body.clientWidth;
+ return 24 / Math.floor(windowWidth / 500);
+ }
+ },
+ },
methods: {
// 娓叉煋琛ㄥ崟妯℃澘
templateRender(formItemList) {
@@ -508,8 +135,11 @@
let group = [];
let dictKeys = [];
let slotColumnList = [];
+ let value=''
formItemList.forEach((formItem) => {
formItem = this.resetFormConfig(formItem);
+ // console.log('formItem',formItem)
+ // console.log('formItem.dicData.value',formItem.dicData)
if (formItem.type === "line") {
group.push({
label: formItem.text,
@@ -522,12 +152,17 @@
if (
formItem.type === "combox" &&
formItem.comboxKey &&
- (!Array.isArray(formItem.dicData) || formItem.dicData.length === 0)
+ (!Array.isArray(formItem.dicData) || formItem.dicData.length === 0) &&
+ (!Array.isArray(formItem.data) || formItem.data.length === 0)
) {
dictKeys.push({ dictKey: formItem.comboxKey, field: formItem.field });
}
// 绂佺敤閮ㄥ垎灞炴�э紙澶栭儴浼犲�肩鐢ㄥ拰鍙傜収绂佺敤锛�
if (this.disabledProp.includes(formItem.field)) {
+ formItem.readOnly = true;
+ }
+ if (formItem.field == "lcstatus") {
+ formItem.field = formItem.field + "_text";
formItem.readOnly = true;
}
// 璁剧疆琛ㄥ崟鏍¢獙鐨勮鍒欙紝鏂囨湰
@@ -536,6 +171,12 @@
if (formItem.type === "text") {
message = "璇疯緭鍏�";
trigger = "blur";
+ }
+ let fieldMapKey=''
+ if( formItem.type == "refer"){
+ if(!formItem.fieldMap){
+ fieldMapKey=formItem.field+'Id'
+ }
}
let columnItem = {
label: formItem.text,
@@ -546,35 +187,44 @@
field: formItem.field,
type: this.columnType[formItem.type],
dicData: this.getDataList(formItem.type, formItem.data),
- disabled: this.type === "detail" ? true : formItem.readOnly,
+ 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,
+ valueFormat:formItem.dateFormate,
format: formItem.dateFormate,
keyAttr: formItem.keyAttr,
- value: formItem.defaultValue,
+ value: (formItem.dicData && formItem.dicData.length > 0 && formItem.secType == "codefixedsec" ? formItem.dicData[0].id : null) ||
+ (formItem.secType == "codedatesec"?formItem.codeDateFormatStr: 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"
+ formItem.type == "refer"
? {
title: formItem.text,
showField: formItem.showField || formItem.field,
field: formItem.field,
+ fieldMap:formItem.fieldMap || {fieldMapKey:'id'},
placeholder: formItem.inputTip,
- options: formItem.referConfig,
+ options: formItem.referConfig
}
: {},
- span: formItem.span ? formItem.span : formItem.type === "textarea" ? 24 : this.trendsSpan,
+ span: formItem.span
+ ? formItem.span
+ : formItem.type === "textarea"
+ ? 24
+ : this.localTrendsSpan,
rules: [
{
required: formItem.required,
- message: `璇�${message}${formItem.text}`,
+ message: `${message}${formItem.text}`,
trigger,
},
{
@@ -589,7 +239,9 @@
value: "key",
},
};
+ // console.log('columnItem',columnItem)
slotColumnList.push(columnItem);
+ // console.log('slotColumnList',slotColumnList)
if (group.length === 0) {
column.push(columnItem);
} else {
@@ -603,12 +255,15 @@
if (this.type === "add") {
this.loading = false;
}
-
+
this.geDictData(dictKeys);
this.getFormDetail();
+ // console.log('selfColumnConfig',this.selfColumnConfig)
+
},
// 浣跨敤浼犲叆鐨勮〃鍗曟暟鎹厤缃�
resetFormConfig(formItem) {
+ // console.log(this.selfColumnConfig)
for (const configType in this.selfColumnConfig) {
if (Object.hasOwnProperty.call(this.selfColumnConfig, configType)) {
const element = this.selfColumnConfig[configType];
@@ -624,6 +279,9 @@
if (Object.hasOwnProperty.call(element, newAttr)) {
const oldAttr = element[newAttr];
formItem[newAttr] = formItem[oldAttr];
+ // console.log(formItem)
+ // console.log(newAttr,oldAttr)
+ // console.log(formItem[newAttr],formItem[oldAttr])
}
}
} else if (configType === "directVoluation") {
@@ -640,9 +298,9 @@
},
// 鏍规嵁灞忓箷鍔ㄦ�侀厤缃〃鍗曞竷灞�
handleResize() {
- let windowWidth = document.body.clientWidth;
- this.trendsSpan = 24 / Math.floor(windowWidth / 500);
- this.updateIndex++;
+ // let windowWidth = document.body.clientWidth;
+ // this.trendsSpan = 24 / Math.floor(windowWidth / 500);
+ // this.updateIndex++;
},
// 鍓嶅悗缂�
preOrSufFixShow(type, val) {
@@ -714,9 +372,46 @@
);
},
setReferValue(data) {
+ // console.log(data)
if (data.field) {
this.form[data.field] = data.value || "";
this.form[data.showField] = data.text || "";
+ if (data.fieldMap) {
+ //璇存槑闇�瑕佹槧灏�
+ for (let key in data.fieldMap) {
+ let mapFields = data.fieldMap[key].split(",");
+ let value = [];
+ data.rawData.forEach(_item => {
+ var temp;
+ if (!_item.attributes) {
+ _item.attributes = _item;
+ }
+ if (mapFields.length == 1) {
+ var mapField = mapFields[0];
+ if (mapField.indexOf("attribute.") > -1) {
+ temp = _item['attributes'][mapField.subString("attribute.".length)];
+ } else {
+ temp = _item['attributes'][mapField] || _item[mapField];
+ }
+ } else {
+ //鏈夊涓�
+ var mutiTemp = [];
+ layui.each(mapFields, function (_indexField, _itemField) {
+ if (_itemField.indexOf("attribute.") > -1) {
+ mutiTemp.push(_item['attributes'][_itemField.subString("attribute.".length)]);
+ } else {
+ mutiTemp.push(_item['attributes'][_itemField] || _item[_itemField]);
+ }
+ });
+ temp = mutiTemp.join(' ');
+ }
+ if (temp != null && temp != '') {
+ value.push(temp);
+ }
+ })
+ this.form[key] = value.join(',');
+ }
+ }
this.$emit("getFormData", this.form);
this.$emit("referConfigDataUpdate", data);
}
--
Gitblit v1.9.3