From ce59cac766bd4f0fb70555bff1c08875181e03bf Mon Sep 17 00:00:00 2001 From: 黄何裕 <1053952480@qq.com> Date: 星期一, 22 七月 2024 09:14:42 +0800 Subject: [PATCH] 处理冲突 --- src/views/system/contract/contract/index.vue | 315 +++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 222 insertions(+), 93 deletions(-) diff --git a/src/views/system/contract/contract/index.vue b/src/views/system/contract/contract/index.vue index 1c095bd..8f7e39d 100644 --- a/src/views/system/contract/contract/index.vue +++ b/src/views/system/contract/contract/index.vue @@ -1,61 +1,123 @@ <template> <div class="app-container"> - + <el-row :gutter="10" class="mb8" style="margin-top: 10px"> + <el-col :span="1.5"> + <el-button + type="primary" + plain + icon="el-icon-plus" + size="mini" + v-hasPermi="['system:contract:import']" + @click="handleImport" + >鏂板</el-button + > + </el-col> + </el-row> <el-row v-loading="loading"> - <el-col :span="8" v-for="(item, index) in contractList" :key="index" style="margin: 10px;width: 30%;"> + <el-col + :span="8" + v-for="(item, index) in contractList" + :key="index" + style="margin: 10px; width: 30%" + > <el-card :body-style="{ padding: '0px' }"> - <ImagePreview style="width: 100%;height: 187px;" - fit="cover" :src="item.attachment" - class="image" /> - <div style="padding: 14px;"> + <ImagePreview + style="width: 100%; height: 187px" + fit="cover" + :src="item.attachment" + class="image" + /> + <div style="padding: 14px"> <span>{{ item.name }}</span> - <span class="time" style="margin-left: 10px;">{{ item.unitName }}</span> + <span class="time" style="margin-left: 10px">{{ + item.unitName + }}</span> <div class="bottom clearfix"> - <time class="time">{{ item.startTime }} 鈥� {{ item.endTime }}</time> - <el-button type="text" class="button" @click="handleDetail(item)">鏌ョ湅璇︽儏</el-button> + <time class="time" + >{{ item.startTime }} 鈥� {{ item.endTime }}</time + > + <el-button type="text" class="button" @click="handleDetail(item)" + >鏌ョ湅璇︽儏</el-button + > </div> </div> </el-card> </el-col> </el-row> - <el-row :gutter="10" class="mb8" style="margin-top: 40px;"> - <el-col :span="1.5"> - <el-button type="primary" plain icon="el-icon-plus" size="mini" v-hasPermi="['system:contract:import']" - @click="handleImport">鏂板</el-button> - </el-col> - </el-row> - <!-- 鍚堝悓璇︽儏 --> - <el-dialog :title="detailName" :visible.sync="detail" width="800px" append-to-body> + <el-dialog + :title="detailName" + :visible.sync="detail" + width="800px" + append-to-body + > <el-form label-position="left" inline class="table-expand"> <el-collapse v-model="activeNames"> - <el-collapse-item v-for="(item, index) in ruleData" :key="index" :title="item.ruleName" :name="index"> - <div class="inline-input-container" v-for="(item, index) in item.children" :key="index"> - <b>{{ item.ruleDesc }}</b> <br v-if="item.ruleDesc"/> - <el-tooltip class="item" v-for="(item, index) in item.children" :key="index" effect="dark" :content="item.deductCategory == '鍒嗘暟涔樹互鏁伴噺' ? '鎵�' + item.calcFraction + '鍒�*鏁伴噺 ' : item.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' ? '鎵�' + item.calcFraction + '鍒�/' + item.calcUnit + '灏忔椂' : '鎵�' + item.calcFraction + '鍒�'" placement="top"> - <span>{{ item.ruleCondition }}<br/></span> + <el-collapse-item + v-for="(item, index) in ruleData" + :key="index" + :title="item.ruleName" + :name="index" + > + <div + class="inline-input-container" + v-for="(item, index) in item.children" + :key="index" + > + <b>{{ item.ruleDesc }}</b> <br v-if="item.ruleDesc" /> + <el-tooltip + class="item" + v-for="(item, index) in item.children" + :key="index" + effect="dark" + :content=" + item.deductCategory == '鍒嗘暟涔樹互鏁伴噺' + ? '鎵�' + item.calcFraction + '鍒�*鏁伴噺 ' + : item.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' + ? '鎵�' + item.calcFraction + '鍒�/' + item.calcUnit + '灏忔椂' + : '鎵�' + item.calcFraction + '鍒�' + " + placement="top" + > + <span>{{ item.ruleCondition }}<br /></span> <!-- {{ item.deductCategory }} {{ item.calcFraction }}{{ item.calcUnit ? "/" + item.calcUnit : '' }} --> - </el-tooltip> + </el-tooltip> </div> </el-collapse-item> <el-collapse-item title="鑰冩牳缁撴灉搴旂敤瑙勫垯" :name="ruleData.length"> <div class="inline-input-container"> - <span v-for="(item, index) in moneyRules" :key="index"> - <div> - <span>{{ item.scoreCondition }}</span> - <el-tooltip class="item" effect="dark" :content="item.description" placement="top"> - <span style="margin-left: 20px;">{{ item.description }}</span> - </el-tooltip> - </div> - </span> + <span v-for="(item, index) in moneyRules" :key="index"> + <div> + <span>{{ item.scoreCondition }}</span> + <el-tooltip + class="item" + effect="dark" + :content="item.description" + placement="top" + > + <span style="margin-left: 20px">{{ + item.description + }}</span> + </el-tooltip> + </div> + </span> </div> </el-collapse-item> <el-form-item label="鍚堝悓闄勪欢" prop="attachment" class="top"> - <file-upload v-model="form.attachment"/> + <file-upload v-model="form.attachment" /> </el-form-item> - <el-link class="top" v-for="item in contractInfo.attachment != null ? contractInfo.attachment.split(',') : contractInfo.attachment" :underline="false" :key="item" @click="handleDownload(item)">{{ item.substring(item.lastIndexOf("/") + 1) }}</el-link> - <div style="text-align: right; margin-top: 10px;"> + <el-link + class="top" + v-for="item in contractInfo.attachment != null + ? contractInfo.attachment.split(',') + : contractInfo.attachment" + :underline="false" + :key="item" + @click="handleDownload(item)" + >{{ item.substring(item.lastIndexOf("/") + 1) }}</el-link + > + <div style="text-align: right; margin-top: 10px"> <el-button type="primary" @click="submitForm">鎻愪氦</el-button> </div> </el-collapse> @@ -63,7 +125,12 @@ </el-dialog> <!-- 鍚堝悓瀵煎叆瀵硅瘽妗� --> - <el-dialog :title="upload.title" :visible.sync="upload.open" width="1000px" append-to-body> + <el-dialog + :title="upload.title" + :visible.sync="upload.open" + width="1000px" + append-to-body + > <el-form ref="form" :model="upload" :rules="rules" label-width="80px"> <el-divider content-position="left">鍚堝悓淇℃伅</el-divider> <div class="row-warp"> @@ -75,31 +142,61 @@ </el-form-item> <el-form-item label="鍏徃鍚嶇О" prop="unitId"> <el-select v-model="upload.unitId" placeholder="璇烽�夋嫨"> - <el-option v-for="item in unitList" :key="item.id" :label="item.value" :value="item.id"> + <el-option + v-for="item in unitList" + :key="item.id" + :label="item.value" + :value="item.id" + > </el-option> </el-select> </el-form-item> <el-form-item label="鍚堝悓鏃堕棿" prop="timezone"> - <el-date-picker :disabled="title === '淇敼鍚堝悓鏃堕棿'" @change="dateChange" v-model="upload.timezone" - value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" align="right" unlink-panels range-separator="鑷�" - start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿"> + <el-date-picker + :disabled="title === '淇敼鍚堝悓鏃堕棿'" + @change="dateChange" + v-model="upload.timezone" + value-format="yyyy-MM-dd HH:mm:ss" + type="datetimerange" + align="right" + unlink-panels + range-separator="鑷�" + start-placeholder="寮�濮嬫椂闂�" + end-placeholder="缁撴潫鏃堕棿" + > </el-date-picker> </el-form-item> </div> </div> - <div class="row-right" style="margin-left: 80px;"> + <div class="row-right" style="margin-left: 80px"> <div class="margin-5"> - <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" + <el-upload + ref="upload" + :limit="1" + accept=".xlsx, .xls" + :headers="upload.headers" :action="upload.url" - :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" + :disabled="upload.isUploading" + :on-progress="handleFileUploadProgress" + :on-success="handleFileSuccess" :data="upload" - :auto-upload="false" drag style="text-align: center;"> + :auto-upload="false" + drag + style="text-align: center" + > <i class="el-icon-upload"></i> - <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> + <div class="el-upload__text"> + 灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em> + </div> <div class="el-upload__tip text-center" slot="tip"> <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span> - <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" - @click="importTemplate">涓嬭浇妯℃澘</el-link> + <el-link + type="primary" + :underline="false" + style="font-size: 12px; vertical-align: baseline" + @click="importTemplate" + >涓嬭浇妯℃澘</el-link + > </div> </el-upload> </div> @@ -108,38 +205,64 @@ </div> <el-divider content-position="left">鑰冩牳缁撴灉搴旂敤瑙勫垯</el-divider> <div class="row-warp"> - <div class="row" v-for="(item, index) in upload.ruleList" :key="index"> - <div class="row-left" style="flex: 0.7;"> + <div + class="row" + v-for="(item, index) in upload.ruleList" + :key="index" + > + <div class="row-left" style="flex: 0.7"> <div class="block"> <el-form-item label="鑰冩牳鏉′欢" prop="ruleList"> - <el-input v-model="item.scoreCondition" style="width: 250px;" /> + <el-input + v-model="item.scoreCondition" + style="width: 250px" + /> </el-form-item> </div> </div> <div class="row-right"> <div class="margin-5"> <el-form-item label="瑙勫垯鎻忚堪" prop="ruleList"> - <el-input type="textarea" v-model="item.description" style="width: 300px;" /> - <el-button style="margin-left: 50px;" type="danger" icon="el-icon-delete" circle @click="deleteRule(index)"></el-button> + <el-input + type="textarea" + v-model="item.description" + style="width: 300px" + /> + <el-button + style="margin-left: 50px" + type="danger" + icon="el-icon-delete" + circle + @click="deleteRule(index)" + ></el-button> </el-form-item> </div> </div> </div> </div> - <el-button style="margin-left: 50px;" type="success" icon="el-icon-plus" circle @click="addRule"></el-button> - </el-form> + <el-button + style="margin-left: 50px" + type="success" + icon="el-icon-plus" + circle + @click="addRule" + ></el-button> + </el-form> <div slot="footer" class="dialog-footer"> <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button> <el-button @click="upload.open = false">鍙� 娑�</el-button> </div> </el-dialog> - </div> </template> <script> -import { listContract, getContract, updateContract } from "@/api/platform/contract"; +import { + listContract, + getContract, + updateContract, +} from "@/api/platform/contract"; import { getRuleListByContractId } from "../../../../api/platform/calculate-rule"; import { getMoneyRulesByContractId } from "../../../../api/platform/calculate-money-rule"; import { unitSelect } from "../../../../api/platform/unit"; @@ -167,21 +290,19 @@ // 涓婁紶鐨勫湴鍧� url: process.env.VUE_APP_BASE_API + "/system/contract/importData", ruleList: [], - unitId: '', - startTime: '', - endTime: '' + unitId: "", + startTime: "", + endTime: "", }, - dialogImageUrl: '', + dialogImageUrl: "", dialogVisible: false, disabled: false, props: { - row: { - - } + row: {}, }, unitList: [], deptList: [], - activeNames: ['1'], + activeNames: ["1"], // 閬僵灞� loading: true, // 閫変腑鏁扮粍 @@ -207,23 +328,32 @@ ruleData: [], moneyRules: [], // 琛ㄥ崟鍙傛暟 - form: { - }, + form: {}, // 琛ㄥ崟鏍¢獙 rules: { name: [ - { required: true, message: "鍚堝悓鍚嶇О涓嶈兘涓虹┖", trigger: "blur" } + { required: true, message: "鍚堝悓鍚嶇О涓嶈兘涓虹┖", trigger: "blur" }, ], unitId: [ - { required: true, message: "杩愮淮鍗曚綅涓嶈兘涓虹┖", trigger: "change" } + { required: true, message: "杩愮淮鍗曚綅涓嶈兘涓虹┖", trigger: "change" }, ], timezone: [ - { type: "array", required: true, message: "鍚堝悓鏃堕棿涓嶈兘涓虹┖", trigger: "change" } + { + type: "array", + required: true, + message: "鍚堝悓鏃堕棿涓嶈兘涓虹┖", + trigger: "change", + }, ], ruleList: [ - { type: "array", required: true, message: "鑰冩牳缁撴灉搴旂敤瑙勫垯涓嶈兘涓虹┖", trigger: "submit" } - ] - } + { + type: "array", + required: true, + message: "鑰冩牳缁撴灉搴旂敤瑙勫垯涓嶈兘涓虹┖", + trigger: "submit", + }, + ], + }, }; }, created() { @@ -234,15 +364,15 @@ methods: { addRule() { this.upload.ruleList.push({ - scoreCondition: '', - description: '' + scoreCondition: "", + description: "", }); }, deleteRule(index) { this.upload.ruleList.splice(index, 1); }, submitForm() { - updateContract(this.form).then(response => { + updateContract(this.form).then((response) => { this.detail = false; if (response.code != 200) { this.$message.error("鎿嶄綔澶辫触"); @@ -258,8 +388,7 @@ }, /** 涓嬭浇妯℃澘鎿嶄綔 */ importTemplate() { - this.download('system/contract/importTemplate', { - }, `鍚堝悓瀵煎叆妯℃澘.xlsx`) + this.download("system/contract/importTemplate", {}, `鍚堝悓瀵煎叆妯℃澘.xlsx`); }, // 鏂囦欢涓婁紶涓鐞� handleFileUploadProgress(event, file, fileList) { @@ -280,7 +409,7 @@ // 鎻愪氦涓婁紶鏂囦欢 submitFileForm() { let that = this; - this.$refs["form"].validate(valid => { + this.$refs["form"].validate((valid) => { if (valid) { that.upload.ruleList = JSON.stringify(this.upload.ruleList); that.loading = true; @@ -290,7 +419,7 @@ that.reset(); }); } - }) + }); }, // 鏃堕棿閫夋嫨鍙戠敓鍙樺寲 dateChange() { @@ -306,20 +435,20 @@ }, // 杩愮淮鍏徃涓嬫媺鏁版嵁 selectUnit() { - unitSelect().then(res => { + unitSelect().then((res) => { this.unitList = res.data; - }) + }); }, // 鍏畨閮ㄩ棬涓嬫媺鏁版嵁 selectDept() { - deptSelect().then(res => { + deptSelect().then((res) => { this.deptList = res.data; - }) + }); }, /** 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛� */ getList() { this.loading = true; - listContract(this.queryParams).then(response => { + listContract(this.queryParams).then((response) => { this.contractList = response; this.total = response.total; this.loading = false; @@ -327,12 +456,12 @@ }, /** 鑾峰彇鍚堝悓瑙勫垯 */ getRuleList(item) { - getRuleListByContractId(item.id).then(response => { + getRuleListByContractId(item.id).then((response) => { this.ruleData = response.data; this.form.id = item.id; this.contractInfo = item; }); - getMoneyRulesByContractId(item.id).then(response => { + getMoneyRulesByContractId(item.id).then((response) => { this.moneyRules = response.data; }); }, @@ -351,28 +480,28 @@ /** 淇敼鎸夐挳鎿嶄綔 */ handleUpdate(row) { this.reset(); - const id = row.id || this.ids - getContract(id).then(response => { + const id = row.id || this.ids; + getContract(id).then((response) => { this.form = response.data; this.open = true; this.title = "淇敼鍚堝悓"; }); }, /** 涓嬭浇鎸夐挳鎿嶄綔 */ - handleDownload (data) { + handleDownload(data) { this.$download.resource(data); }, - reset () { + reset() { this.upload = { open: false, name: undefined, unitId: undefined, timezone: undefined, - ruleList: [] + ruleList: [], }; this.resetForm("form"); - } - } + }, + }, }; </script> @@ -421,7 +550,7 @@ } .clearfix:after { - clear: both + clear: both; } .top { -- Gitblit v1.8.0