From a1b85ef72062ca80db35546e4216dd564f3e0f57 Mon Sep 17 00:00:00 2001 From: WangHan <wwh_work@126,com> Date: 星期四, 03 四月 2025 15:58:19 +0800 Subject: [PATCH] 问题与漏洞修改 --- admin-web/src/views/departmentitem/itemdis/disDetails/edit.vue | 311 +++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 236 insertions(+), 75 deletions(-) diff --git a/admin-web/src/views/departmentitem/itemdis/disDetails/edit.vue b/admin-web/src/views/departmentitem/itemdis/disDetails/edit.vue index 37b0db9..68578e8 100644 --- a/admin-web/src/views/departmentitem/itemdis/disDetails/edit.vue +++ b/admin-web/src/views/departmentitem/itemdis/disDetails/edit.vue @@ -1,111 +1,272 @@ <template> - <win-sm :title="setting.title" @close="close" :width="'800px'"> - <el-form ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm" label-width="100px"> - <el-form-item label="缂栧彿" prop="code"> - <el-input disabled v-model="formData.code" clearable maxlength="20" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="浠撳簱鍚嶇О" prop="name"> - <el-input v-model="formData.name" clearable maxlength="20" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="鍦板潃" > - <el-input v-model="formData.adss" clearable maxlength="20" show-word-limit style="width: 100%"/> - </el-form-item> - <el-form-item label="鐘舵��" prop="status"> - <el-switch - v-model="formData.status" - active-color="#0d997c" - inactive-color="#C0CCDA"> - </el-switch> - </el-form-item> + <el-dialog + width="1000px" + :visible="true" + :top="'15vh'" + :close-on-click-modal="false" + :append-to-body="true" + :destroy-on-close="true" + @close="close" + > + <div slot="title" align="left" class="dialog-title"> + <div + class="tab-item" + :class="tabIndex == index ? 'active' : ''" + v-for="(item, index) in tabs" + :key="index" + @click="tabIndex = index" + > + {{ item }} + </div> + </div> + <el-form v-loading="loading" v-show="tabIndex == 0" ref="ruleForm" :model="formData" :rules="rules" class="demo-ruleForm"> + <div v-for="(item, index) in formData.list" :key="index"> + <el-row :gutter="20"> + <el-col :span="6"> + <el-form-item label="瑙勬牸鍨嬪彿:"> + {{ item.baseGoodModelName }} + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鍗曚綅:"> + {{ item.unit }} + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20" v-for="(childItem, childIndex) in item.recordUserInfos" :key="childIndex"> + <el-col :span="6"> + <el-form-item label="鍒嗗彂鏁伴噺:"> + {{ childItem.count }} + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="浣跨敤浜�:"> + <el-input v-if="childItem.isEdit" v-model="childItem.userName" style="width: 120px"></el-input> + <span v-else>{{ childItem.userName }}</span> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鑱旂郴鐢佃瘽:"> + <el-input v-if="childItem.isEdit" v-model="childItem.phone" style="width: 120px"></el-input> + <span v-else>{{ childItem.phone }}</span> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item> + <span class="edit-text" @click="handleEditItem(childItem)">{{childItem.isEdit?'鍙栨秷':'淇敼'}}</span> + </el-form-item> + </el-col> + </el-row> + + <el-divider v-if="index+1<formData.list.length"></el-divider> + </div> </el-form> - <div slot="footer" align="center" class="dialog-footer"> + <el-form + v-show="tabIndex == 1" + ref="ruleForm" + :model="formData" + :rules="rules" + class="demo-ruleForm" + style="width: 96%" + > + <div v-for="(item, index) in list" :key="index"> + <el-row :gutter="20" class="item-header"> + <el-col :span="6"> + <el-form-item label="淇敼鏃堕棿:"> + {{ item.updateTime | formatTime }} + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="淇敼浜�:"> + {{ item.updateUserName }} + </el-form-item> + </el-col> + </el-row> + <el-divider></el-divider> + <template v-for="(record,i) in item.recordSkuDtoList"> + <el-row :key="i" :gutter="20"> + <el-col :span="6"> + <el-form-item label="瑙勬牸鍨嬪彿:"> + {{ record.baseGoodModelName }} + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鍗曚綅:"> + {{ record.unit }} + </el-form-item> + </el-col> + </el-row> + <el-row :gutter="20" v-for="(use, k) in record.recordUserInfos" :key="k+'_'+i"> + <el-col :span="6"> + <el-form-item label="鍒嗗彂鏁伴噺:"> + {{ use.num }} + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="浣跨敤浜�:"> + {{ use.useName }} + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鑱旂郴鐢佃瘽:"> + <span>{{ use.phone }}</span> + </el-form-item> + </el-col> + </el-row> +<!-- <el-divider v-if="index+1<list.length"></el-divider>--> + <el-divider></el-divider> + </template> + </div> + </el-form> + <div v-if="tabIndex == 0" slot="footer" align="center" class="dialog-footer"> <my-button name="鍙栨秷" site="form" @click="close"/> <my-button name="淇濆瓨" site="form" @click="save"/> </div> - </win-sm> + </el-dialog> </template> <script> -import winSm from '@/components/win/win-sm' -import myButton from '@/components/myButton/myButton' -import * as finsystenant from '@/api/baseSetting/finsystenant' +import myButton from '@/components/myButton/myButton'; +import {useInfoUpdate, useRecord} from "@/api/stock/transfer"; +import listPage from '@/views/mixins/listPage'; export default { - components: {winSm, myButton}, + components: {myButton}, + mixins: [listPage], props: { setting: { type: Object, default: () => { - } - } + }, + }, }, data() { return { - checkAll: false, - checkedList: [], + loading: true, + tabs: ['淇敼浣跨敤浜�', '浣跨敤璁板綍'], + tabIndex: 0, + list: [], formData: { - code: '', - name: '', - status: true, - summary: '', + list: [], }, rules: { - code: [ - {required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'} - ], - name: [ - {required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'} - ], - status: [ - {required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'} - ] - } - } + code: [{required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'blur'}], + name: [{required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'blur'}], + status: [{required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'blur'}], + }, + }; }, created() { - if(this.setting.info){ - this.formData = Object.assign({},JSON.parse(this.setting.info)) - } + useRecord({transferOrderId: this.setting.id}).then((res) => { + let model = JSON.parse(JSON.stringify(res[0].recordSkuDtoList)) + model.map(m => { + m.recordUserInfos.map(u => { + u.baseGoodModelId = m.baseGoodModelId + u.baseUnit = m.unit + u.businessId = this.setting.id + u.count = u.num + u.tel = u.phone + u.procureModelId = m.procureModelId + u.userName = u.useName + u.isEdit = false + }) + }) + this.formData.list = model; + this.list = res + this.loading = false + }); }, methods: { - getEditInfo(id){ - + getEditInfo(id) { + }, + handleEditItem(user) { + user.isEdit = !user.isEdit; + if(!user.isEdit){ + console.log(user) + user.phone = user.tel + user.userName = user.useName + } }, close() { - this.$emit('close') + this.$emit('close'); }, save() { this.$refs.ruleForm.validate((valid) => { if (valid) { - const params = Object.assign({}, this.formData) - if(this.setting.id){ - // 缂栬緫鎺ュ彛 - finsystenant.edit(params).then(res => { - if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') - } else { - this.$message.error('淇濆瓨澶辫触') - } + let recordInfoList = [] + this.formData.list.map(item=>{ + item.recordUserInfos.map(re=>{ + recordInfoList.push(re) }) - }else{ - params.orgId = this.setting.orgId - finsystenant.add(params).then(res => { - if (res) { - this.$message.success('淇濆瓨鎴愬姛锛�') - this.close() - this.$emit('search') - } else { - this.$message.error('淇濆瓨澶辫触') - } - }) - } + }) + useInfoUpdate({recordInfoList}).then((res) => { + this.$message.success('淇濆瓨鎴愬姛锛�'); + this.close(); + this.$emit('search'); + }).catch(()=>{ + this.$message.error('淇濆瓨澶辫触'); + }); } else { - this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��') + this.$message.error('鏍¢獙鏈�氳繃锛岃妫�鏌ャ��'); } - }) + }); + }, + }, +}; +</script> +<style lang="scss" scoped> +.dialog-title { + display: flex; + align-items: center; + + .tab-item { + color: #3d3d3d; + font-size: 16px; + font-style: normal; + padding: 0 10px; + position: relative; + cursor: pointer; + + &.active::after { + content: ''; + width: 100%; + height: 2px; + background: #409eff; + position: absolute; + bottom: -10px; + left: 0; } } } -</script> + +.edit-text { + color: #409eff; + cursor: pointer; +} + +.item-header { + ::v-deep { + .el-form-item__label, + .el-form-item__content { + font-weight: 700; + } + } +} + +::v-deep .el-divider--horizontal { + margin: 10px 0; +} + +::v-deep { + .el-form-item { + margin-bottom: 5px; + } +} + +.line { + width: 100%; + height: 1px; + margin: 10px 0; + background: rgba($color: #dcdfe6, $alpha: 0.45); +} +</style> -- Gitblit v1.9.1