From 945a4ea02215e40e6e9de65385e2c5d1ad70087c Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 23 十月 2024 17:07:37 +0800 Subject: [PATCH] 表单定义 预览 应用 表格穿梭框删除重复数据 --- Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/index.vue | 1 Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/formDialog.vue | 129 +++++++++++++++++++++++++++++++++++++----- Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue | 21 +++++- 3 files changed, 129 insertions(+), 22 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 017da53..cabe032 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 @@ -129,7 +129,7 @@ </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">棰勮</el-button> + <el-button icon="el-icon-zoom-in" plain size="small" type="primary" @click="checkViewHandler" >棰勮</el-button> </div> </basic-container> </el-main> @@ -408,7 +408,7 @@ append-to-body="true" class="avue-dialog" title="琛ㄥ崟" - width="40%" + width="50%" @close="closeCustomDialog"> <el-form ref="form" :model="customForm" :rules="rules" label-position="left" label-width="85px"> <el-row style="border-bottom: 1px solid #878585;padding-bottom: 10px"> @@ -436,7 +436,7 @@ <el-col :span="12"> <el-form-item class="rightLabel" label="鏄剧ず绫诲瀷"> - <el-select v-model="customForm.itemType" placeholder="璇烽�夋嫨绫诲瀷" size="mini"> + <el-select v-model="customForm.itemType" placeholder="璇烽�夋嫨绫诲瀷" size="mini" @change="customItemTypeChange"> <el-option v-for="(item,index) in showSelectList" :key="index" :label="item.label" :value="item.value"></el-option> </el-select> @@ -668,6 +668,82 @@ <el-button type="primary" @click="customSaveHandler">纭� 瀹�</el-button> </span> </el-dialog> + <el-dialog + v-dialogDrag + :visible.sync="checkViewVisible" + append-to-body="true" + class="avue-dialog" + title="棰勮" + width="80%"> + <el-form ref="form" :model="form" :rules="rules" label-width="100px"> + <el-row> + <el-col v-for="(item,index) in formList" :key="index" :span="topForm.columnNumber"> + <el-form-item :class="['hiddenLabel', { 'active-border': activeItem.text === item.text }]" + :label="item.itemName + '锛�'" + style="padding-left: 5px" @click.native="formItemClick(item,index)"> + <el-input + v-if="item.itemType === 'text' || + item.itemType === 'custom' || + item.itemType === 'customform'|| + item.itemType === 'hidden' || + item.itemType === 'specialCharacter'" + v-model="item.value" :placeholder="item.text" + size="mini"></el-input> + + <div v-if="item.itemType === 'textbtn'" style="display: flex;align-items: center"> + <el-input v-model="item.value" :placeholder="item.text" size="mini"></el-input> + <el-button icon="el-icon-edit" plain size="mini" style="height: 28px;" + type="primary"></el-button> + </div> + + <el-input + v-if="item.itemType === 'textarea' || item.itemType === 'richtext' || item.itemType === 'webeditor'" + v-model="item.value" + :placeholder="item.text" + :rows="2" + type="textarea"> + </el-input> + + <el-input-number v-if="item.itemType === 'number'" v-model="item.value" :max="99999" + :min="1"></el-input-number> + <el-input v-if="item.itemType === 'password'" v-model="input" placeholder="璇疯緭鍏ュ瘑鐮�" + show-password></el-input> + <el-radio v-if="item.itemType === 'radio'" v-model="item.value"></el-radio> + <el-checkbox v-if="item.itemType === 'checkbox'" v-model="item.value"></el-checkbox> + <el-select v-if="item.itemType === 'select' || item.itemType === 'multiselect'" + v-model="item.value" :disabled="true" placeholder="璇烽�夋嫨" size="mini"> + </el-select> + <el-date-picker + v-if="item.itemType === 'date' || item.itemType === 'datetime'" + v-model="item.value" + :placeholder="item.itemType === 'date' ? '璇烽�夋嫨鏃ユ湡' : '璇烽�夋嫨鏃ユ湡鏃堕棿'" + type="date"> + </el-date-picker> + + <el-time-select + v-if="item.itemType === 'time'" + v-model="item.value" + :picker-options="{ + start: '08:30', + step: '00:15', + end: '18:30' + }" + placeholder="閫夋嫨鏃堕棿"> + </el-time-select> + <el-button v-if="item.itemType === 'file'" + v-model="item.value" plain size="mini" type="primary"> + 涓婁紶鏂囦欢 + </el-button> + <el-button v-if="item.itemType === 'multiFile'" + v-model="item.value" plain size="mini" type="primary"> + 澶氭枃浠朵笂浼� + </el-button> + + </el-form-item> + </el-col> + </el-row> + </el-form> + </el-dialog> </el-dialog> </template> @@ -695,6 +771,7 @@ }, data() { return { + checkViewVisible: false, optionObj: { optionName: '', optionValue: '' @@ -908,6 +985,7 @@ this.activeItem = item; this.activeItemIndex = index; this.form = {...item}; + // console.log(item,index); this.topForm.position = index += 1; }, @@ -1088,10 +1166,8 @@ prmItemList: this.formList }, } - console.log(params); savePortalVI(params).then(res => { - console.log(res); - if(res.data.code === 200){ + if (res.data.code === 200) { this.$message.success(res.data.obj); this.visible = false; this.closeDialog(); @@ -1110,12 +1186,14 @@ this.$message.error('璇峰湪鍙充晶閫夋嫨鏁版嵁鍚庤繘琛屾搷浣滐紒'); return; } - const targetObject = this.formList.find(item => item.text === this.form.text); - if (targetObject) { - targetObject.itemType = val; + }, + + // 鑷畾涔夌粍浠朵慨鏀规樉绀虹被鍨� + customItemTypeChange(val) { + if (val) { + this.customClearFormBottom(); } - this.form.itemType = val; }, // 鑷畾涔夌粍浠朵繚瀛� @@ -1126,6 +1204,11 @@ } if (!this.customForm.itemType) { this.$message.error('璇烽�夋嫨鏄剧ず绫诲瀷'); + return; + } + const status = this.formList.some(item => item.text === this.customForm.text); + if(status){ + this.$message.error('璇锋鏌ユ槸鍚︽坊鍔犵浉鍚岄」'); return; } this.formList.push(this.customForm); @@ -1148,6 +1231,13 @@ this.form.itemListTable = this.form.itemListTxt = this.form.itemListVal = this.form.itemStyle = ""; }, + // 鑷畾涔夌粍浠舵竻绌轰笉鍚岀被鍨嬭〃鍗曚笅鏂圭粦瀹氬�� + customClearFormBottom() { + this.customOptionObj = {}; + this.customForm.itemKeyValueList = []; + this.customForm.itemListTable = this.customForm.itemListTxt = this.customForm.itemListVal = this.customForm.itemStyle = ""; + }, + // 鑷畾涔夎〃鍗曚娇鐢ㄥ瓧娈甸�夋嫨 customTextHandler() { @@ -1155,17 +1245,22 @@ // 鍙充晶琛ㄥ崟搴旂敤鎸夐挳 asideFormHandler() { + if(!this.form.text){ + this.$message.error('璇锋坊鍔犱竴鏉℃暟鎹繘琛屼繚瀛橈紒'); + return; + } + this.formList = this.formList.map(item => + item.text === this.form.text ? this.form : item + ); + this.$message.success('搴旂敤鎴愬姛'); }, - customClearFormBottom() { - this.optionObj = {}; - this.form.itemKeyValueList = []; - this.form.itemListTable = ""; - this.form.itemListTxt = ""; - this.form.itemListVal = ""; - this.form.itemStyle = ""; + // 棰勮鎸夐挳 + checkViewHandler(){ + this.checkViewVisible = true; } + } } </script> diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue index 320ee99..ef4e680 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/components/tableDialog.vue @@ -284,7 +284,8 @@ <el-col :span="24"> <el-form-item label="鏌ヨ妯℃澘"> <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-option v-for="(item,index) in searchQtNameList" :key="index" :label="item.qtName" + :value="item.qtName"></el-option> </el-select> </el-form-item> </el-col> @@ -344,7 +345,7 @@ }, data() { return { - searchQtNameList:[], + searchQtNameList: [], formLoading: false, itemImgHeight: '', itemImgWidth: '', @@ -509,7 +510,7 @@ }, // 鏌ヨ妯℃澘涓嬫媺鎺ュ彛鏌ヨ - getSearchSelectList(){ + getSearchSelectList() { getObjTypeQTs({btName: this.treeRadio === '0' ? this.TreeNodeRow.id : this.TreeNodeRow.name}).then(res => { this.searchQtNameList = res.data.data; }) @@ -604,6 +605,18 @@ this.$message.error('璇烽�夋嫨涓�鏉℃暟鎹�'); return; } + + + const onlyFlag = this.form.itemOutFieldList.some(item => item.id === this.showLabelLeftRow.id); + + if (onlyFlag) { + this.$message.error('璇锋鏌ユ槸鍚︽湁閲嶅椤�'); + this.form.itemSelectOutFieldList = this.form.itemSelectOutFieldList.filter(selectItem => + !this.form.itemOutFieldList.some(outItem => outItem.id === selectItem.id) + ) + return; + } + this.form.itemOutFieldList.push(this.showLabelLeftRow); this.form.itemSearchFieldList = this.form.itemOutFieldList; @@ -679,7 +692,7 @@ // 鏌ヨ妯℃澘娣诲姞 searchAddClickHandler() { - if(!this.form.searchLabel){ + if (!this.form.searchLabel) { this.$message.error('鏌ヨ瀛楁涓嶈兘涓虹┖!'); return; } diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/index.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/index.vue index f92c433..e1b47da 100644 --- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/index.vue +++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/ui/formDefine/index.vue @@ -264,7 +264,6 @@ // 宸︿晶鏍戠偣鍑� nodeClick(row) { - console.log(row); this.tableRadio = null; this.nodeRow = row; this.getRightPortalVIDatas(row); -- Gitblit v1.9.3