From 4ead3f1a8571b3536daedbd4a0268aebdfb86517 Mon Sep 17 00:00:00 2001
From: yuxc <653031404@qq.com>
Date: 星期三, 31 五月 2023 10:31:14 +0800
Subject: [PATCH] 1、对MDM服务的Feign进行改动
---
Source/UBCS-WEB/src/components/FormTemplate/index.vue | 552 +++++++++++++++++++++++++------------------------------
1 files changed, 251 insertions(+), 301 deletions(-)
diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
index 739da06..38a9f73 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -3,46 +3,93 @@
:visible.sync="dialogVisible"
v-dialogDrag
top="0vh"
- title="鎻愮ず"
+ :title="title"
class="avue-dialog avue-dialog--top"
:width="dialogOptions.width"
append-to-body
+ v-if="dialogVisible"
>
- <avue-form :option="option" v-loading="loading" ref="form">
+ <avue-form
+ v-model="form"
+ :option="option"
+ v-loading="loading"
+ ref="form"
+ :key="index"
+ >
<template :slot="item.prop + 'Label'" v-for="item in option.column">
- <div>
- <span>{{ item.label }}</span>
+ <span>
+ <span>{{ item.label }} </span>
<el-tooltip
v-if="item.keyAttr"
class="item"
effect="dark"
- content="鍏抽敭灞炴��"
+ content="璇ュ睘鎬т负鍏抽敭灞炴��"
placement="top-start"
>
<i class="el-icon-star-on key_attr_icon"></i>
</el-tooltip>
- </div>
+ <el-tooltip
+ v-if="item.tip"
+ class="item"
+ effect="dark"
+ :content="item.tip"
+ placement="top-start"
+ >
+ <i class="el-icon-warning"></i>
+ </el-tooltip>
+ </span>
+ </template>
+ <template :slot="item.prop + ''" v-for="item in option.column">
+ <vciWebRefer v-if="item.type=='refer'" :options="item.originalItem"></vciWebRefer>
</template>
</avue-form>
- <div class="avue-dialog__footer">
+ <FindLike ref="findLike"></FindLike>
+ <div class="avue-dialog__footer" v-if="type !== 'detail'">
<el-button @click="close()">鍙� 娑�</el-button>
- <el-button @click="close()" type="primary">纭� 瀹�</el-button>
+ <el-button @click="close()" type="primary" :loading="submitBtnLoading">纭� 瀹�</el-button>
+ <el-button @click="findLinkSubmit" type="primary">鐩镐技鍍忔煡璇�</el-button>
</div>
</el-dialog>
</template>
<script>
-import { getFormTemplate } from "../../api/common";
+import { getFormTemplate, executeCode, findLike } from "@/api/formTemplate";
+import { getDictionary } from "../../api/system/dict";
+import FindLike from "./FindLike.vue";
+import vciWebRefer from "../refer/vciWebRefer.vue";
export default {
name: "FormTemplate",
+ components: { FindLike ,vciWebRefer},
props: {
visible: {
type: Boolean,
default: false,
},
+ disabledProp: {
+ type: Array,
+ default: () => ["id"],
+ },
+ templateOid: {
+ type: String,
+ default: "",
+ },
+ codeClassifyOid: {
+ type: String,
+ default: "",
+ },
+ type: {
+ type: String,
+ default: 'add'
+ },
+ title: {
+ type: String,
+ default: '琛ㄥ崟妯℃澘'
+ }
},
data() {
return {
+ index: 0,
+ form: {},
loading: false,
dialogOptions: {
width: "60%",
@@ -59,8 +106,12 @@
combox: "select",
truefalse: "switch",
number: "number",
+ textarea: "textarea",
datetime: "datetime",
+ date: "date",
+ refer:'refer'
},
+ // 鍋囨暟鎹�
testItems: [
{
comboxKey: null,
@@ -72,31 +123,6 @@
extendAttrMap: null,
extendAttrString: null,
field: "id",
- hidden: true,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "浠e彿",
- tooltips: "",
- type: "text",
- unique: false,
- verify: "",
- },
- {
- comboxKey: "wupin${lcstatus}",
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "lcstatus",
hidden: false,
keyAttr: false,
prefix: "",
@@ -106,7 +132,31 @@
selectLibFlag: "",
showField: null,
suffix: "",
- text: "鐘舵��",
+ 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,
@@ -131,7 +181,7 @@
selectLibFlag: "",
showField: null,
suffix: "鏂囨湰鍚庣紑娴嬭瘯",
- text: "鍓嶅悗缂�",
+ text: "鍓嶅悗缂�鍔熻兘",
tooltips: "",
type: "text",
unique: false,
@@ -156,14 +206,14 @@
selectLibFlag: "",
showField: null,
suffix: "",
- text: "姝e垯鏍¢獙",
+ text: "姝e垯鏍¢獙鍔熻兘",
tooltips: "璇疯緭鍏ユ暟瀛�",
type: "text",
unique: false,
verify: "/[0-9]/",
},
{
- comboxKey: "materialclassify_data",
+ comboxKey: null,
customClass: null,
data: [
{
@@ -182,7 +232,7 @@
displayExtension: null,
extendAttrMap: null,
extendAttrString: null,
- field: "materialclassify",
+ field: "dataSelect",
hidden: false,
keyAttr: false,
prefix: "",
@@ -192,7 +242,32 @@
selectLibFlag: "",
showField: null,
suffix: "",
- text: "鐗╂枡鍒嗙被",
+ 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,
@@ -232,7 +307,7 @@
displayExtension: null,
extendAttrMap: null,
extendAttrString: null,
- field: "secondfl",
+ field: "datetime",
hidden: false,
keyAttr: false,
prefix: "",
@@ -242,7 +317,7 @@
selectLibFlag: "",
showField: null,
suffix: "",
- text: "鏃堕棿閫夋嫨鍣�",
+ text: "鏃ユ湡鏃堕棿閫夋嫨鍣�",
tooltips: "",
type: "datetime",
unique: false,
@@ -257,9 +332,9 @@
displayExtension: null,
extendAttrMap: null,
extendAttrString: null,
- field: "thrifl",
+ field: "time",
hidden: false,
- keyAttr: true,
+ keyAttr: false,
prefix: "",
readOnly: false,
referConfig: null,
@@ -267,9 +342,9 @@
selectLibFlag: "",
showField: null,
suffix: "",
- text: "鍏抽敭灞炴��",
+ text: "鏃堕棿閫夋嫨鍣�",
tooltips: "",
- type: "text",
+ type: "date",
unique: false,
verify: "",
},
@@ -292,7 +367,7 @@
selectLibFlag: "",
showField: null,
suffix: "",
- text: "閿�鍞墿鏂�",
+ text: "寮�鍏�",
tooltips: "",
type: "truefalse",
unique: false,
@@ -303,7 +378,7 @@
customClass: null,
data: null,
dateFormate: "",
- defaultValue: "",
+ defaultValue: "鎴戞槸榛樿鍊�",
displayExtension: null,
extendAttrMap: null,
extendAttrString: null,
@@ -317,7 +392,7 @@
selectLibFlag: "",
showField: null,
suffix: "",
- text: "鍥惧彿",
+ text: "榛樿鍊煎姛鑳�",
tooltips: "鎻愮ず",
type: "text",
unique: false,
@@ -334,7 +409,7 @@
extendAttrString: null,
field: "xinghaoguige",
hidden: false,
- keyAttr: false,
+ keyAttr: true,
prefix: "",
readOnly: false,
referConfig: null,
@@ -342,7 +417,7 @@
selectLibFlag: "",
showField: null,
suffix: "",
- text: "瑙勬牸鍨嬪彿锛圕APP锛�",
+ text: "灞炴�у叧閿��",
tooltips: "",
type: "text",
unique: false,
@@ -362,189 +437,12 @@
keyAttr: false,
prefix: "",
readOnly: false,
- referConfig: {
- backPath: "",
- displayTable: null,
- height: null,
- initSort: null,
- loadType: "all",
- mapFields: "",
- method: "GET",
- muti: false,
- onlyLeaf: false,
- paramForFormKey: "",
- parentFieldName: null,
- parentUsedField: null,
- parentValue: null,
- referContent: null,
- referType: "appendix",
- remoteSort: false,
- tableConfig: {
- cols: [
- {
- align: "left",
- colspan: 1,
- comboxKey: null,
- data: [],
- dateFormate: null,
- edit: null,
- editConfig: null,
- event: null,
- field: "id",
- fieldType: "text",
- fixed: null,
- hidden: false,
- minWidth: null,
- optionButtons: null,
- optionField: false,
- optionJsMap: null,
- queryField: null,
- referConfig: null,
- rowspan: 1,
- showField: null,
- sort: true,
- sortField: "id",
- style: null,
- templet: null,
- title: "缂栧彿",
- unresize: false,
- width: 150,
- },
- {
- align: "left",
- colspan: 1,
- comboxKey: null,
- data: [],
- dateFormate: null,
- edit: null,
- editConfig: null,
- event: null,
- field: "name",
- fieldType: "text",
- fixed: null,
- hidden: false,
- minWidth: null,
- optionButtons: null,
- optionField: false,
- optionJsMap: null,
- queryField: null,
- referConfig: null,
- rowspan: 1,
- showField: null,
- sort: true,
- sortField: "name",
- style: null,
- templet: null,
- title: "鍚嶇О",
- unresize: false,
- width: 180,
- },
- ],
- oid: null,
- page: {
- limit: 15,
- page: 1,
- },
- queryColumns: [
- {
- align: "left",
- colspan: 1,
- comboxKey: null,
- data: [],
- dateFormate: null,
- edit: null,
- editConfig: null,
- event: null,
- field: "id",
- fieldType: "text",
- fixed: null,
- hidden: false,
- minWidth: null,
- optionButtons: null,
- optionField: false,
- optionJsMap: null,
- queryField: null,
- referConfig: null,
- rowspan: 1,
- showField: null,
- sort: true,
- sortField: "id",
- style: null,
- templet: null,
- title: "缂栧彿",
- unresize: false,
- width: 150,
- },
- {
- align: "left",
- colspan: 1,
- comboxKey: null,
- data: [],
- dateFormate: null,
- edit: null,
- editConfig: null,
- event: null,
- field: "name",
- fieldType: "text",
- fixed: null,
- hidden: false,
- minWidth: null,
- optionButtons: null,
- optionField: false,
- optionJsMap: null,
- queryField: null,
- referConfig: null,
- rowspan: 1,
- showField: null,
- sort: true,
- sortField: "name",
- style: null,
- templet: null,
- title: "鍚嶇О",
- unresize: false,
- width: 180,
- },
- ],
- },
- textField: "name",
- type: "default",
- url: "",
- useFormKey: "",
- valueField: "oid",
- where: {
- materialname: "璁¢噺鍗曚綅",
- },
- },
+ tip: "鎴戞槸鎻愮ず鍔熻兘",
required: false,
selectLibFlag: "",
showField: "jiliangdwname",
suffix: "",
- text: "璁¢噺鍗曚綅",
- tooltips: "",
- type: "refer",
- unique: false,
- verify: "",
- },
- {
- comboxKey: null,
- customClass: null,
- data: null,
- dateFormate: "",
- defaultValue: "",
- displayExtension: null,
- extendAttrMap: null,
- extendAttrString: null,
- field: "chukufangshi",
- hidden: false,
- keyAttr: false,
- prefix: "",
- readOnly: false,
- referConfig: null,
- required: false,
- selectLibFlag: "",
- showField: null,
- suffix: "",
- text: "鍑哄簱鏂瑰紡",
+ text: "鎻愮ず鍔熻兘",
tooltips: "",
type: "text",
unique: false,
@@ -556,10 +454,10 @@
data: null,
dateFormate: "",
defaultValue: "",
- displayExtension: null,
+ displayExtension: "this.form.sum = this.form.fun1 + this.form.fun2",
extendAttrMap: null,
extendAttrString: null,
- field: "beizhushuoming",
+ field: "fun1",
hidden: false,
keyAttr: false,
prefix: "",
@@ -569,7 +467,7 @@
selectLibFlag: "",
showField: null,
suffix: "",
- text: "澶囨敞璇存槑",
+ text: "鍙傛暟1娴嬭瘯js",
tooltips: "",
type: "text",
unique: false,
@@ -581,77 +479,50 @@
data: null,
dateFormate: "",
defaultValue: "",
- displayExtension: null,
+ displayExtension: "this.form.sum = this.form.fun1 + this.form.fun2",
extendAttrMap: null,
extendAttrString: null,
- field: "hesuanfenlei",
+ field: "fun2",
hidden: false,
keyAttr: false,
prefix: "",
readOnly: false,
- referConfig: {
- backPath: "",
- displayTable: null,
- height: null,
- initSort: null,
- loadType: "all",
- mapFields: "",
- method: "GET",
- muti: false,
- onlyLeaf: false,
- paramForFormKey: "",
- parentFieldName: "PARENTCODECLASSIFYOID",
- parentUsedField: "oid",
- parentValue:
- "\\IN(SELECT oid from PLATFORMBTM_CODECLASSIFY where id ='hesuanfenlei')",
- referContent: null,
- referType: "codeclassify",
- remoteSort: false,
- tableConfig: null,
- textField: "name",
- type: "tree",
- url: "",
- useFormKey: "",
- valueField: "oid",
- where: null,
- },
required: false,
selectLibFlag: "",
showField: "hesuanfenleiname",
suffix: "",
- text: "鏍哥畻鍒嗙被",
+ text: "鍙傛暟2娴嬭瘯js",
tooltips: "",
- type: "refer",
+ type: "text",
unique: false,
verify: "",
},
{
- comboxKey: "Eummaterialtype",
+ comboxKey: null,
customClass: null,
data: null,
dateFormate: "",
- defaultValue: "1001",
- displayExtension: null,
+ defaultValue: "",
+ displayExtension: "",
extendAttrMap: null,
extendAttrString: null,
- field: "materialtype",
+ field: "sum",
hidden: false,
keyAttr: false,
prefix: "",
- readOnly: false,
- referConfig: null,
+ readOnly: true,
required: false,
selectLibFlag: "",
- showField: null,
+ showField: "",
suffix: "",
- text: "鐗╂枡绫诲瀷",
+ text: "鍙傛暟1鍙傛暟2姹傚拰",
tooltips: "",
- type: "combox",
+ type: "text",
unique: false,
verify: "",
},
{
- comboxKey: "myDataSecret",
+ comboxKey: null,
customClass: null,
data: null,
dateFormate: "",
@@ -659,7 +530,7 @@
displayExtension: null,
extendAttrMap: null,
extendAttrString: null,
- field: "secretgrade",
+ field: "textarea",
hidden: false,
keyAttr: false,
prefix: "",
@@ -669,18 +540,42 @@
selectLibFlag: "",
showField: null,
suffix: "",
- text: "secretGrade",
+ text: "鏂囨湰鍩�",
tooltips: "",
- type: "combox",
+ 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: true,
+ required: false,
+ selectLibFlag: "",
+ showField: "depId",
+ suffix: "",
+ text: "鍙傜収",
+ tooltips: "",
+ type: "text",
unique: false,
verify: "",
},
],
+ submitBtnLoading: false
};
},
- created() {
- this.preOrSufFixShow();
- },
+ created() {},
computed: {
dialogVisible: {
get() {
@@ -695,10 +590,8 @@
getFormTemplate() {
this.loading = true;
getFormTemplate({
- templateOid: "78B8C7C5-A042-0B96-FE6D-65421451782A",
- codeClassifyOid: "4524E801-6CC6-92E8-1AC3-2AB9604E8F96",
- page: 1,
- limit: 30,
+ templateOid: this.templateOid,
+ codeClassifyOid: this.codeClassifyOid,
})
.then((res) => {
if (res.status === 200) {
@@ -714,16 +607,25 @@
});
},
templateRender() {
- const items = this.testItems;
- // const items = this.templateData.formDefineVO.items;
+ const items = this.templateData.formDefineVO.items;
+ let column = [];
+ let dictKeys = [];
items.forEach((item) => {
// 闅愯棌琛ㄥ崟鍏冪礌
if (item.hide) {
return;
}
- // if (item.field === 'id' || item.field === 'lcstatus') {
- // item.readOnly = true
- // }
+ if (
+ item.type === "combox" &&
+ item.comboxKey &&
+ (!Array.isArray(item.dicData) || item.dicData.length === 0)
+ ) {
+ dictKeys.push({ dictKey: item.comboxKey, field: item.field });
+ }
+ // 绂佺敤閮ㄥ垎灞炴�э紙澶栭儴浼犲�肩鐢ㄥ拰鍙傜収绂佺敤锛�
+ if (this.disabledProp.includes(item.field) || this.$utilFunc.isValuableObj(item.referConfig)) {
+ item.readOnly = true;
+ }
// 璁剧疆琛ㄥ崟鏍¢獙鐨勮鍒欙紝鏂囨湰
let message = "璇烽�夋嫨";
let trigger = "change";
@@ -736,10 +638,10 @@
let columnItem = {
label: item.text,
labelslot: true,
- prop: item.field,
+ prop: this.$utilFunc.isValuableObj(item.referConfig) ? (item.showField || item.field) : item.field,
type: this.columnType[item.type],
- dicData: this.getDictData(item.type, item.dicData),
- disabled: item.readOnly,
+ dicData: this.getDataList(item.type, item.data),
+ disabled: this.type === 'detail' ? true : item.readOnly,
prepend: this.preOrSufFixShow("text", item.prefix),
append: this.preOrSufFixShow("text", item.suffix),
prefixIcon: this.preOrSufFixShow("icon", item.prefix),
@@ -747,7 +649,15 @@
valueFormat: item.dateFormate,
format: item.dateFormate,
keyAttr: item.keyAttr,
- value: 1,
+ value: item.defaultValue,
+ tip: item.tip,
+ comboxKey: item.comboxKey,
+ originalItem:item,
+ change: () => {
+ this.changeFun(item.displayExtension, item.prop);
+ },
+ span: item.type === "file" || item.type === "textarea" ? 24 : null,
+ click: this.clickFun(item.referConfig),
rules: [
{
required: item.required,
@@ -755,7 +665,8 @@
trigger,
},
{
- pattern: item.verify,
+ // 濡傛灉娌℃湁姝e垯鍒欏尮閰嶄换浣曞瓧绗�
+ pattern: item.verify ? item.verify : /[\s\S.]*/g,
message: item.tooltips,
trigger,
},
@@ -765,12 +676,21 @@
value: "key",
},
};
- console.log(this.$refs.form, "form");
- this.option.column.push(columnItem);
+ column.push(columnItem);
+ this.$set(this.option, "column", column);
});
+ this.index++;
+ this.geDictData(dictKeys);
},
- close() {
- this.dialogVisible = false;
+ changeFun(displayExtension, prop) {
+ // executeCode({displayExtension, data: this.form}).then(res => {
+ // this.form[prop] = res.data.data
+ // })
+ },
+ clickFun(referConfig) {
+ if (this.type === 'detail') {
+ return
+ }
},
// 鍓嶅悗缂�
preOrSufFixShow(type, val) {
@@ -780,17 +700,17 @@
return val;
}
},
- // 鑾峰彇瀛楀吀鏁版嵁
- getDictData(type, dicData) {
+ // 鑾峰彇swich鍜屽凡鎷垮埌鐨勪笅鎷夋暟鎹�
+ getDataList(type, dicData) {
if (type === "truefalse") {
return [
{
+ key: false,
value: "鍚�",
- key: 0,
},
{
+ key: true,
value: "鏄�",
- key: 1,
},
];
} else if (type === "combox") {
@@ -798,11 +718,37 @@
}
return [];
},
+ // 鑾峰彇瀛楀吀鏁版嵁
+ geDictData(dictKeys) {
+ dictKeys.forEach((dictObj) => {
+ getDictionary({ code: dictObj.dictKey }).then((res) => {
+ if (res.data && res.data.code === 200) {
+ this.option.column = this.option.column.map((item) => {
+ if (item.field === dictObj.field) {
+ let dictData = (res.data.data || []).map((itm) => {
+ itm.value = itm.dictValue;
+ itm.key = itm.dictKey;
+ return itm;
+ });
+ item.dicData = dictData;
+ }
+ return item;
+ });
+ }
+ });
+ });
+ },
+ findLinkSubmit() {
+ this.templateData.templateVO.data = this.form
+ console.log(this.$refs.findLike, 'this.$refs.findLike');
+ this.$refs.findLike.findLinkClick(this.templateData.templateVO)
+ }
},
watch: {
visible(newV) {
if (newV) {
this.getFormTemplate();
+ // this.templateRender()
}
},
},
@@ -816,4 +762,8 @@
top: 2px;
color: red;
}
+// 瑙e喅swich缁勪欢涓嶅瀭鐩村眳涓殑闂
+/deep/ .el-switch {
+ vertical-align: baseline;
+}
</style>
--
Gitblit v1.10.0