From 16eb67ab6b103663d30cad9ba74360f982e131cb Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 03 九月 2024 10:34:59 +0800 Subject: [PATCH] 自定义列显隐控制 --- src/views/system/contract/contract/index.vue | 78 +++++++++++++++++++++++++------------- 1 files changed, 51 insertions(+), 27 deletions(-) diff --git a/src/views/system/contract/contract/index.vue b/src/views/system/contract/contract/index.vue index 8f7e39d..60df1bb 100644 --- a/src/views/system/contract/contract/index.vue +++ b/src/views/system/contract/contract/index.vue @@ -1,5 +1,29 @@ <template> <div class="app-container"> + <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> + <el-form-item label="鍚堝悓鍚嶇О"> + <el-input + v-model="queryParams.name" + placeholder="鍚堝悓鍚嶇О鎼滅储" + clearable + @clear="getList" + @keyup.enter.native="getList" + /> + </el-form-item> + <el-form-item label="鍚堝悓鐘舵��"> + <el-select v-model="queryParams.status" @change="getList"> + <el-option label="鍏ㄩ儴" value=""></el-option> + <el-option label="鏈夋晥" value="ACTIVE"></el-option> + <el-option label="鏈敓鏁�" value="NOT_START"></el-option> + <el-option label="宸插け鏁�" value="FINISHED"></el-option> + </el-select> + </el-form-item> + <el-form-item> + <el-button type="primary" icon="el-icon-search" size="small" @click="getList">鎼滅储</el-button> + </el-form-item> + </el-form> + + <el-row :gutter="10" class="mb8" style="margin-top: 10px"> <el-col :span="1.5"> <el-button @@ -13,12 +37,12 @@ > </el-col> </el-row> - <el-row v-loading="loading"> + <el-row v-loading="loading" :gutter="20"> <el-col :span="8" v-for="(item, index) in contractList" :key="index" - style="margin: 10px; width: 30%" + style="margin-bottom: 10px" > <el-card :body-style="{ padding: '0px' }"> <ImagePreview @@ -55,33 +79,22 @@ <el-form label-position="left" inline class="table-expand"> <el-collapse v-model="activeNames"> <el-collapse-item - v-for="(item, index) in ruleData" + v-for="name, index in ruleName" :key="index" - :title="item.ruleName" - :name="index" + :title="name" > <div class="inline-input-container" - v-for="(item, index) in item.children" + v-for="item, index in ruleData" :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 :content=" + item.deductCategory == '鍒嗘暟涔樹互鏁伴噺' + ? '鎵�' + item.calcFraction + '鍒�*鏁伴噺 ' + : item.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' + ? '鎵�' + item.calcFraction + '鍒�/' + item.calcUnit + '灏忔椂' + : '鎵�' + item.calcFraction + '鍒�'"> + <b v-if="item.ruleName === name">{{ item.ruleCondition }}<br /></b> </el-tooltip> </div> </el-collapse-item> @@ -102,6 +115,7 @@ </el-tooltip> </div> </span> + <el-empty v-if="moneyRules.length == 0" :image-size="100" /> </div> </el-collapse-item> <el-form-item label="鍚堝悓闄勪欢" prop="attachment" class="top"> @@ -250,8 +264,8 @@ </el-form> <div slot="footer" class="dialog-footer"> - <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button> <el-button @click="upload.open = false">鍙� 娑�</el-button> + <el-button type="primary" @click="submitFileForm">纭� 瀹�</el-button> </div> </el-dialog> </div> @@ -275,6 +289,10 @@ comments: { ImagePreview }, data() { return { + queryParams: { + name: '', + status: '' + }, loading: false, contractInfo: {}, // 鍚堝悓瀵煎叆鍙傛暟 @@ -303,8 +321,6 @@ unitList: [], deptList: [], activeNames: ["1"], - // 閬僵灞� - loading: true, // 閫変腑鏁扮粍 ids: [], // 闈炲崟涓鐢� @@ -326,6 +342,7 @@ // 鏄惁鏄剧ず璇︽儏 detail: false, ruleData: [], + ruleName: [], moneyRules: [], // 琛ㄥ崟鍙傛暟 form: {}, @@ -449,7 +466,7 @@ getList() { this.loading = true; listContract(this.queryParams).then((response) => { - this.contractList = response; + this.contractList = response.data; this.total = response.total; this.loading = false; }); @@ -458,6 +475,13 @@ getRuleList(item) { getRuleListByContractId(item.id).then((response) => { this.ruleData = response.data; + if (this.ruleData) { + this.ruleName = this.ruleData.map((item) => { + return item.ruleName; + }); + this.ruleName = [...new Set(this.ruleName)]; + console.log('this.ruleName', this.ruleName); + } this.form.id = item.id; this.contractInfo = item; }); -- Gitblit v1.8.0