From a223d5e29e9384f720ae98c44cbe10f8fa4f73e7 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期四, 21 八月 2025 13:42:16 +0800 Subject: [PATCH] 优化 --- admin/src/components/business/OperaCategoryWindow.vue | 139 +++++++++++++++++++++++++++++++++------------- 1 files changed, 99 insertions(+), 40 deletions(-) diff --git a/admin/src/components/business/OperaCategoryWindow.vue b/admin/src/components/business/OperaCategoryWindow.vue index 40738ff..326f991 100644 --- a/admin/src/components/business/OperaCategoryWindow.vue +++ b/admin/src/components/business/OperaCategoryWindow.vue @@ -6,41 +6,46 @@ @confirm="confirm" > <el-form :model="form" ref="form" :rules="rules"> - <el-form-item label="鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�" prop="deleted"> - <el-input v-model="form.deleted" placeholder="璇疯緭鍏ユ槸鍚﹀凡鍒犻櫎 0鏈垹闄� 1宸插垹闄�" v-trim/> + <el-form-item label="鍚嶇О" prop="name"> + <el-input v-if="form.type !=3" v-model="form.name" placeholder="璇疯緭鍏ュ悕绉�" v-trim/> + <el-select v-else v-model="form.name" placeholder="璇烽�夋嫨璁㈠崟绫诲瀷" v-trim> + <el-option :value="'0'" label="鐢ㄥ伐鍗�"></el-option> + <el-option :value="'1'" label="璐ц繍鍗�"></el-option> + <el-option :value="'2'" label="璁㈤鍗�"></el-option> + </el-select> </el-form-item> - <el-form-item label="鐘舵��:0=鍚敤锛�1=绂佺敤锛�" prop="status"> - <el-input v-model="form.status" placeholder="璇疯緭鍏ョ姸鎬�:0=鍚敤锛�1=绂佺敤锛�" v-trim/> + <el-form-item v-if="form.type ==3 " label="鎵嬬画璐癸紙%锛�" prop="detail"> + <el-input type="number" v-model="form.detail" placeholder="璇疯緭鍏ュ悕绉�" v-trim/> </el-form-item> - <el-form-item label="鍒涘缓浜虹紪鐮�" prop="createUser"> - <el-input v-model="form.createUser" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/> + <el-form-item v-if="form.type == 1 || form.type == 2" :label=" form.type == 1?'杞﹁締瑙勬牸':'椁愭爣閰嶇疆锛堝厓锛�'" prop="detailList"> + <div style="display: flex;flex-direction: column"> + <div style="position: relative;display: block;width: 100%;" v-for="(item,index) in form.detailList" > + <el-input :type="form.type == 1?'text':'number'" style="display:inline-block;width: 60%;margin:5px ;float: left" v-model="form.detailList[index]" placeholder="璇疯緭鍏ュ唴瀹�" v-trim/> + <el-button style="display:inline-block;margin : 5px " @click="del(index)" v-if="form.detailList.length>0">x</el-button> + </div> + <div style="position: relative;display: block;width: 100%;"> + <el-button style="width: 100px;margin: 5px;" type="primary" @click="add()">娣诲姞瑙勬牸</el-button> + </div> + </div> </el-form-item> - <el-form-item label="鍒涘缓鏃堕棿" prop="createTime"> - <el-date-picker v-model="form.createTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker> + <el-form-item v-if="form.type == 1" label="鍥炬爣" prop="icon"> + <UploadAvatarImage + :file="{ imgurlfull: form.iconFull, imgurl: form.icon }" + :uploadData="uploadData" + @uploadSuccess="uploadAvatarSuccess" + /> </el-form-item> - <el-form-item label="鏇存柊浜虹紪鐮�" prop="updateUser"> - <el-input v-model="form.updateUser" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/> + <el-form-item v-if="form.id ==null && form.type == 1" label="鏄惁鍥哄畾杞﹁締" prop="isFixed"> + <el-radio-group v-model="form.isFixed"> + <el-radio :label="0">闈炲浐瀹�</el-radio> + <el-radio :label="1">鍥哄畾杞﹀瀷</el-radio> + </el-radio-group> </el-form-item> - <el-form-item label="鏇存柊鏃堕棿" prop="updateTime"> - <el-date-picker v-model="form.updateTime" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker> + <el-form-item label="鎺掑簭鐮�" prop="sortnum"> + <el-input v-model="form.sortnum" placeholder="璇疯緭鍏ユ帓搴忕爜" v-trim/> </el-form-item> - <el-form-item label="澶囨敞" prop="remark"> - <el-input v-model="form.remark" placeholder="璇疯緭鍏ュ娉�" v-trim/> - </el-form-item> - <el-form-item label="鍗曚綅鍚嶇О" prop="name"> - <el-input v-model="form.name" placeholder="璇疯緭鍏ュ崟浣嶅悕绉�" v-trim/> - </el-form-item> - <el-form-item label="绫诲瀷:0=鍝佺閰嶇疆锛�1=杞﹁締绫诲瀷閰嶇疆锛�2=椁愭爣閰嶇疆锛�3=鎵嬬画璐归厤缃紱" prop="type"> - <el-input v-model="form.type" placeholder="璇疯緭鍏ョ被鍨�:0=鍝佺閰嶇疆锛�1=杞﹁締绫诲瀷閰嶇疆锛�2=椁愭爣閰嶇疆锛�3=鎵嬬画璐归厤缃紱" v-trim/> - </el-form-item> - <el-form-item label="鍐呭锛堣溅杈嗚鏍笺�侀鏍囥�佹墜缁垂姣斾緥锛�" prop="detail"> - <el-input v-model="form.detail" placeholder="璇疯緭鍏ュ唴瀹癸紙杞﹁締瑙勬牸銆侀鏍囥�佹墜缁垂姣斾緥锛�" v-trim/> - </el-form-item> - <el-form-item label="鍥炬爣锛堣溅杈嗙被鍨嬩娇鐢級" prop="icon"> - <el-input v-model="form.icon" placeholder="璇疯緭鍏ュ浘鏍囷紙杞﹁締绫诲瀷浣跨敤锛�" v-trim/> - </el-form-item> - <el-form-item label="鏄惁鍥哄畾杞﹁締锛堣溅杈嗙被鍨嬩娇鐢級:0=鍚︼紱1=鏄紱" prop="isFixed"> - <el-input v-model="form.isFixed" placeholder="璇疯緭鍏ユ槸鍚﹀浐瀹氳溅杈嗭紙杞﹁締绫诲瀷浣跨敤锛�:0=鍚︼紱1=鏄紱" v-trim/> + <el-form-item label="鎻忚堪" prop="remark"> + <el-input v-model="form.remark" placeholder="璇疯緭鍏ユ弿杩�" v-trim/> </el-form-item> </el-form> </GlobalWindow> @@ -49,30 +54,34 @@ <script> import BaseOpera from '@/components/base/BaseOpera' import GlobalWindow from '@/components/common/GlobalWindow' +import UploadAvatarImage from '@/components/common/UploadAvatarImage' export default { name: 'OperaCategoryWindow', extends: BaseOpera, - components: { GlobalWindow }, + components: { GlobalWindow ,UploadAvatarImage}, data () { return { + isUploading: false, + uploadData: { + folder: 'category' + }, // 琛ㄥ崟鏁版嵁 form: { id: null, - deleted: '', - status: '', - createUser: '', - createTime: '', - updateUser: '', - updateTime: '', - remark: '', + status: 0, + sortnum: null, name: '', - type: '', - detail: '', + type: null, + detail: null, + remark: null, + detailList: [''], icon: '', - isFixed: '' + iconFull: '', + isFixed: 0 }, // 楠岃瘉瑙勫垯 rules: { + name: [{ required: true, message: '璇疯緭鍏ラ厤缃悕绉�' }] } } }, @@ -81,6 +90,56 @@ api: '/business/category', 'field.id': 'id' }) + }, + methods:{ + del(index){ + if(this.form.detailList.length<=1){ + return + } + this.form.detailList.splice(index,1) + }, + add(){ + this.form.detailList.push('') + }, + uploadAvatarSuccess (file) { + this.$set(this.form, 'icon', file.imgurl) + this.$set(this.form, 'iconFull', file.imgurlfull) + }, + open(title, target, type) { + this.title = title + this.visible = true + this.form = { + id: null, + status: 0, + sortnum: null, + name: '', + detail: null, + type: type, + remark: null, + detailList: [''], + icon: '', + iconFull: '', + isFixed: 0 + } + // 鏂板缓 + if (target == null) { + this.$nextTick(() => { + this.$refs.form.resetFields() + this.form[this.configData['field.id']] = null + this.form.type = type + }) + return + } + // 缂栬緫 + this.$nextTick(() => { + for (const key in this.form) { + this.form[key] = target[key] + } + if(this.form.detailList==null){ + this.form.detailList = [''] + } + }) + } } } </script> -- Gitblit v1.9.3