From bd4f0508ed8c7ee30b5b882cac1c300720ae15e7 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期一, 04 十一月 2024 18:23:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue | 254 ++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 241 insertions(+), 13 deletions(-)
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue
index cabe032..0e8b0c5 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue
@@ -30,12 +30,15 @@
<div style="display: flex;justify-content: center">
<span style="display: flex;align-items: center; margin-right: 5px;">
<p class="tableTopLabel">鍚嶇О锛�</p>
- <el-input v-model="topForm.viName" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
+ <el-input v-model="topForm.viName" placeholder="璇疯緭鍏ュ悕绉�" size="mini"></el-input>
</span>
<span style="display: flex;align-items: center; margin-right: 5px;">
<p class="tableTopLabel">鏌ヨ妯℃澘鍚嶇О锛�</p>
- <el-input v-model="form.itemQtName" placeholder="璇疯緭鍏ユ煡璇㈡ā鏉垮悕绉�" size="mini"></el-input>
+ <el-select v-model="form.itemQtName" placeholder="璇烽�夋嫨鏌ヨ妯℃澘" size="mini">
+ <el-option v-for="(item,index) in searchQtNameList" :key="index" :label="item.qtName"
+ :value="item.qtName"></el-option>
+ </el-select>
</span>
<span style="display: flex;align-items: center; margin-right: 5px;">
@@ -129,7 +132,8 @@
</el-button>
<el-button icon="el-icon-plus" plain size="small" type="primary" @click="addCustomClickHandler">娣诲姞鑷畾涔夌粍浠�
</el-button>
- <el-button icon="el-icon-zoom-in" plain size="small" type="primary" @click="checkViewHandler" >棰勮</el-button>
+ <el-button icon="el-icon-zoom-in" plain size="small" type="primary" @click="checkViewHandler">棰勮
+ </el-button>
</div>
</basic-container>
</el-main>
@@ -240,7 +244,9 @@
<el-form-item label="鏉冮檺鎺у埗">
<div style="display: flex;align-items: center">
<el-input v-model="form.itemRight" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
- <el-button plain size="mini" style="margin-left: 3px" type="success">閫夋嫨</el-button>
+ <el-button plain size="mini" style="margin-left: 3px" type="success" @click="authClickHandler">
+ 閫夋嫨
+ </el-button>
</div>
</el-form-item>
</el-col>
@@ -513,10 +519,12 @@
</el-col>
<el-col :span="24">
- <el-form-item label="鏉冮檺鎺у埗">
+ <el-form-item label="灞炴�ф潈闄�">
<div style="display: flex;align-items: center">
<el-input v-model="customForm.itemRight" placeholder="璇疯緭鍏ュ唴瀹�" size="mini"></el-input>
- <el-button plain size="mini" style="margin-left: 3px" type="success">閫夋嫨</el-button>
+ <el-button plain size="mini" style="margin-left: 3px" type="success" @click="customAuthClickHandler">
+ 閫夋嫨
+ </el-button>
</div>
</el-form-item>
</el-col>
@@ -668,6 +676,29 @@
<el-button type="primary" @click="customSaveHandler">纭� 瀹�</el-button>
</span>
</el-dialog>
+ <!-- 娣诲姞鑷畾涔夌粍浠堕�夋嫨灞炴�ф睜灞炴�у璇濇 -->
+ <el-dialog
+ v-dialogDrag
+ :visible.sync="customAttrVisible"
+ append-to-body="true"
+ class="avue-dialog"
+ title="閫夋嫨灞炴��"
+ width="50%">
+ <avue-crud
+ ref="userCrud"
+ :data="customAttrData"
+ :option="customAttrOption"
+ :page.sync="page"
+ :table-loading="customAttrLoading"
+ @row-click="customAttrRowClickHandler"
+ >
+ </avue-crud>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="customAttrVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="customAttrSaveHandler">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ <!-- 棰勮 -->
<el-dialog
v-dialogDrag
:visible.sync="checkViewVisible"
@@ -744,12 +775,42 @@
</el-row>
</el-form>
</el-dialog>
+
+ <el-dialog
+ v-dialogDrag
+ :visible.sync="authVisible"
+ append-to-body="true"
+ class="avue-dialog"
+ title="鏉冮檺鎺у埗-浜哄憳鍒楄〃"
+ width="60%"
+ @close="authDialogClose">
+ <div style="height: 650px">
+ <div style="height: 600px;">
+ <avue-tree :key="refresh" ref="authTree" v-model="treeAuthForm" :data="treeAuthData" :option="treeAuthOption"
+ @check-change="treeAuthCheckChange">
+ <span slot-scope="{ node, data }" class="el-tree-node__label">
+ <span style="font-size: 15px">
+ <i class="el-icon-s-promotion"></i>
+ {{ (node || {}).label }}
+ </span>
+ </span>
+ </avue-tree>
+ </div>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="authDialogClose">鍙� 娑�</el-button>
+ <el-button type="primary" @click="authDialogSaveHandler">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
</el-dialog>
</template>
<script>
-import {getTreeAttributes, savePortalVI} from "@/api/UI/formDefine/api";
+import {getObjTypeQTs, getTreeAttributes, savePortalVI, refPersonOrgTree} from "@/api/UI/formDefine/api";
import func from "@/util/func";
+import basicOption from "@/util/basic-option";
+import {gridAttribute} from "@/api/modeling/attributePool/api";
+import {getSysModelTreeMenuByPID} from "@/api/systemModel/mangeModel/api";
export default {
name: "formDialog",
@@ -771,6 +832,87 @@
},
data() {
return {
+ authType: 'default',
+ refresh: Math.random(),
+ treeAuthOption: {
+ multiple: true,
+ height: 'auto',
+ menu: false,
+ addBtn: false,
+ defaultExpandAll: true,
+ lazy: true,
+ props: {
+ label: 'text',
+ value: 'oid',
+ children: 'childNodes',
+ },
+ treeLoad: (node, resolve) => {
+ // console.log(node);
+ const params = {
+ 'conditionMap[dataType]': node.data.data,
+ 'conditionMap[parentId]': node.data.data,
+ 'conditionMap[orgType]': 'all'
+ }
+ refPersonOrgTree(node.level === 0 ? {} : params).then(res => {
+ resolve(res.data.treeData.map(item => {
+ return {
+ ...item,
+ id: item.id,
+ name: item.name,
+ leaf: item.leaf
+ }
+ }))
+ })
+ }
+ },
+ treeAuthData: [],
+ treeAuthForm: {},
+ authVisible: false,
+ searchQtNameList: [],
+ customAttrRow: {},
+ customAttrOption: {
+ ...basicOption,
+ calcHeight: -60,
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ menu: false,
+ refreshBtn: false,
+ highlightCurrentRow: true,
+ selection: false,
+ column: [
+ {
+ label: '灞炴�у悕',
+ prop: 'id',
+ sortable: true,
+ },
+ {
+ label: '鏍囩',
+ prop: 'name',
+ sortable: true,
+ },
+ {
+ label: '绫诲瀷',
+ prop: 'attributeDataTypeText',
+ sortable: true,
+ width: 100
+ },
+ {
+ label: '榛樿鍊�',
+ prop: 'defaultValue',
+ sortable: true,
+ width: 120
+ },
+ {
+ label: '鎻忚堪',
+ prop: 'description',
+ overHidden: true,
+ },
+ ]
+ },
+ customAttrData: [],
+ customAttrLoading: false,
+ customAttrVisible: false,
checkViewVisible: false,
optionObj: {
optionName: '',
@@ -954,6 +1096,7 @@
this.treeLoading = false;
}
})
+ this.getSearchSelectList();
},
// 寮�濮嬫嫋鎷芥爲鑺傜偣浜嬩欢
@@ -969,8 +1112,10 @@
const params = {
text: data.text,
oid: data.oid,
- itemType: 'text'
+ itemType: 'text',
+ itemName: data.data.name
}
+ console.log(data);
const isDuplicate = this.formList.some(item => item.text === data.text);
if (isDuplicate) {
@@ -985,6 +1130,7 @@
this.activeItem = item;
this.activeItemIndex = index;
this.form = {...item};
+ console.log(item);
// console.log(item,index);
this.topForm.position = index += 1;
@@ -1139,11 +1285,11 @@
// 淇濆瓨鎸夐挳
saveClickHandler() {
if (!this.topForm.viName) {
- this.$message.error('鍚嶇О涓嶈兘涓虹┖');
+ this.$message.error('琛ㄥ崟鍚嶇О涓嶈兘涓虹┖');
return;
}
if (this.formList.length <= 0) {
- this.$message.error('椤甸潰涓嶈兘涓虹┖');
+ this.$message.error('椤甸潰瀹氫箟涓嶈兘涓虹┖');
return;
}
this.formList = this.formList.map(item => {
@@ -1207,7 +1353,7 @@
return;
}
const status = this.formList.some(item => item.text === this.customForm.text);
- if(status){
+ if (status) {
this.$message.error('璇锋鏌ユ槸鍚︽坊鍔犵浉鍚岄」');
return;
}
@@ -1238,14 +1384,38 @@
this.customForm.itemListTable = this.customForm.itemListTxt = this.customForm.itemListVal = this.customForm.itemStyle = "";
},
+ // 鑷畾涔夎〃鍗曚娇鐢ㄥ瓧娈佃〃鏍艰鐐瑰嚮
+ customAttrRowClickHandler(row) {
+ this.customAttrRow = row;
+ },
+
// 鑷畾涔夎〃鍗曚娇鐢ㄥ瓧娈甸�夋嫨
customTextHandler() {
+ this.customAttrVisible = true;
+ this.customAttrLoading = true
+ gridAttribute().then(res => {
+ const data = res.data.data;
+ this.customAttrData = data;
+ this.customAttrLoading = false;
+ }).catch(err => {
+ this.$message.error(err)
+ });
+ },
+ // 鑷畾涔夎〃鍗曚娇鐢ㄥ瓧娈典繚瀛�
+ customAttrSaveHandler() {
+ if (func.isEmptyObject(this.customAttrRow)) {
+ this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹繘琛屼繚瀛�');
+ return;
+ }
+ // console.log(this.customAttrRow)
+ this.customForm.text = this.customAttrRow.id;
+ this.customAttrVisible = false;
},
// 鍙充晶琛ㄥ崟搴旂敤鎸夐挳
asideFormHandler() {
- if(!this.form.text){
+ if (!this.form.text) {
this.$message.error('璇锋坊鍔犱竴鏉℃暟鎹繘琛屼繚瀛橈紒');
return;
}
@@ -1257,8 +1427,66 @@
},
// 棰勮鎸夐挳
- checkViewHandler(){
+ checkViewHandler() {
this.checkViewVisible = true;
+ },
+
+ // 鏌ヨ妯℃澘涓嬫媺鎺ュ彛鏌ヨ
+ getSearchSelectList() {
+ getObjTypeQTs({btName: this.treeRadio === '0' ? this.TreeNodeRow.id : this.TreeNodeRow.name}).then(res => {
+ this.searchQtNameList = res.data.data;
+ })
+ },
+
+ // 鏉冮檺閫夋嫨鎸夐挳
+ authClickHandler() {
+ this.authVisible = true;
+ },
+
+ // 鑷畾涔夎〃鍗曢�夋嫨鏉冮檺
+ customAuthClickHandler() {
+ this.authVisible = true;
+ this.authType = 'attr';
+ },
+
+ // 鏉冮檺鏍戝璇濇鍏抽棴
+ authDialogClose() {
+ this.authVisible = false;
+ this.refresh = Math.random(); // 鍒锋柊宸︿晶鏍�
+ },
+
+ // 鏉冮檺鎺у埗淇濆瓨
+ authDialogSaveHandler() {
+ const filterList = ['root', 'user', 'role', 'department']
+ const data = this.$refs.authTree.getCheckedNodes().filter(item => !filterList.includes(item.oid));
+ if (!data || data.length <= 0) {
+ this.$message.error('璇锋鏌ユ槸鍚﹀嬀閫夊瓙鑺傜偣');
+ return;
+ }
+
+ const resultMap = {};
+
+ data.forEach(item => {
+ const key = item.parentBtmName;
+ if (!resultMap[key]) {
+ resultMap[key] = []; // 鍒濆鍖栨暟缁�
+ }
+ resultMap[key].push(item.parentBtmName === 'user' ? item.data.userName : item.data.name);
+ });
+
+ // 缁勮瀛楃涓�
+ const resultString = Object.entries(resultMap).map(([key, oids]) => {
+ return `${key}=${oids.join(',')}`; // 鐢� , 杩炴帴鍚屼竴绫诲瀷鐨� oid
+ }).join('&&'); // 鏈�鍚庣敤 && 杩炴帴涓嶅悓绫诲瀷
+
+ // console.log(resultString);
+ if (this.authType === 'attr') {
+ this.customForm.itemRight = resultString;
+ } else {
+ this.form.itemRight = resultString;
+ }
+ // this.form.itemRight = resultString;
+ this.authDialogClose();
}
}
--
Gitblit v1.9.3