From 09f0861e61e69e2d818eafc7b9edbd17cf0822d4 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 06 十一月 2025 17:20:02 +0800
Subject: [PATCH] 页面优化以及扣分详情导出
---
src/views/system/contract/score/index.vue | 132 ++++++++++++++++++++++++++++++--------------
1 files changed, 90 insertions(+), 42 deletions(-)
diff --git a/src/views/system/contract/score/index.vue b/src/views/system/contract/score/index.vue
index d798598..00fa913 100644
--- a/src/views/system/contract/score/index.vue
+++ b/src/views/system/contract/score/index.vue
@@ -8,36 +8,32 @@
</el-select>
</el-form-item>
<el-form-item label="瀹℃牳鏃堕棿">
- <el-date-picker v-model="daterangeAuditingTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
- type="daterange" range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"></el-date-picker>
+ <el-date-picker v-model="daterangeAuditingTime" style="width: 240px" value-format="yyyy-MM-dd"
+ type="daterange" range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" @change="handleQuery"></el-date-picker>
</el-form-item>
<el-form-item label="鍒涘缓鏃堕棿">
- <el-date-picker v-model="daterangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss"
- type="daterange" range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡"></el-date-picker>
+ <el-date-picker v-model="daterangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd"
+ type="daterange" range-separator="-" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" @change="handleQuery"></el-date-picker>
</el-form-item>
<el-form-item>
- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">鎼滅储</el-button>
- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">閲嶇疆</el-button>
+ <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="el-icon-refresh" size="small" @click="resetQuery">閲嶇疆</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
- v-hasPermi="['platform:score:add']">鏂板</el-button>
- </el-col>
- <el-col :span="1.5">
- <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
- v-hasPermi="['platform:score:edit']">淇敼</el-button>
+ v-hasPermi="['contract:score:add']">鏂板</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
- v-hasPermi="['platform:score:remove']">鍒犻櫎</el-button>
+ v-hasPermi="['contract:score:remove']">鍒犻櫎</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
- v-hasPermi="['platform:score:export']">瀵煎嚭</el-button>
+ v-hasPermi="['contract:score:export']">瀵煎嚭</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@@ -48,7 +44,7 @@
<el-table-column label="鑰冩牳鍚堝悓" align="center" prop="contractName"/>
<el-table-column label="鑰冩牳瑙勫垯" align="center" prop="ruleName" :show-overflow-tooltip="true" />
<el-table-column label="鎵e噺鏂瑰紡" align="center" prop="deductCategory"/>
- <el-table-column label="鑰冩牳鎸囨爣" align="center" prop="num"/>
+ <el-table-column label="瓒呮湡閲忓��" align="center" prop="num"/>
<el-table-column label="鑰冩牳鎵e垎" align="center" prop="score"/>
<el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180px"/>
<el-table-column label="瀹℃牳鐘舵��" align="center" prop="auditingStatus">
@@ -63,10 +59,10 @@
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)">璇︽儏</el-button>
<el-button size="mini" type="text" icon="el-icon-s-check" @click="handleAuditing(scope.row)"
- v-hasPermi="['default:audit']" v-if="scope.row.auditingStatus === '寰呭鏍�'">瀹℃牳</el-button>
+ v-hasPermi="['contract:score:audit']" v-if="scope.row.auditingStatus === '寰呭鏍�'">瀹℃牳</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
- v-if="scope.row.auditingStatus === '寰呭鏍�'" v-hasPermi="['system:auditing:edit']">淇敼</el-button>
- <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
+ v-hasPermi="['contract:score:edit']">淇敼</el-button>
+ <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['contract:score:remove']">鍒犻櫎</el-button>
</template>
</el-table-column>
</el-table>
@@ -84,7 +80,7 @@
<el-form-item label="杩愮淮鑰冩牳瑙勫垯">
<el-input v-model="auditingForm.ruleName" type="textarea" autosize disabled />
</el-form-item>
- <el-form-item label="杩愮淮鑰冩牳鎸囨爣">
+ <el-form-item label="杩愮淮瓒呮湡閲忓��">
<el-input v-model="auditingForm.num" disabled />
</el-form-item>
<el-form-item label="杩愮淮鑰冩牳鎵e垎">
@@ -99,13 +95,13 @@
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="submitAuditing">纭� 瀹�</el-button>
<el-button @click="closeAuditing">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitAuditing">纭� 瀹�</el-button>
</div>
</el-dialog>
<!-- 鏂板鎴栦慨鏀� -->
- <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
+ <el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-form-item label="杩愮淮鑰冩牳鍗曚綅" prop="unitId">
<el-select v-model="form.unitId" placeholder="杩愮淮鑰冩牳鍗曚綅" @change="handleChangeUnit">
@@ -119,18 +115,16 @@
<div class="row-left">
<div class="block">
<span class="demonstration"></span>
- <el-cascader ref="cascader" v-model="form.ruleIdsArray" :options="options" @change="handleChange">
+ <el-cascader
+ ref="cascader"
+ v-model="form.ruleIdsArray"
+ :options="options"
+ @change="handleChange"
+ :props="{ expandTrigger: 'hover'}"
+ >
<template slot-scope="{ data }">
- <el-tooltip class="item" :disabled="data.label.length < 16 && !data.deductCategory" effect="dark"
- :content="
- data.label.length < 16 ?
- data.deductCategory ?
- data.deductCategory == '鍒嗘暟涔樹互鏁伴噺' ? '鎵�' + data.calcFraction + '鍒�*鏁伴噺 ' : data.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' ? '鎵�' + data.calcFraction + '鍒�/' + data.calcUnit + '灏忔椂' : '鎵�' + data.calcFraction + '鍒�' :
- '' :
- (data.deductCategory ?
- data.label + ' ' + (data.deductCategory == '鍒嗘暟涔樹互鏁伴噺' ? '鎵�' + data.calcFraction + '鍒�*鏁伴噺 ' : data.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' ? '鎵�' + data.calcFraction + '鍒�/' + data.calcUnit + '灏忔椂' : '鎵�' + data.calcFraction + '鍒�') :
- data.label)"
- placement="left">
+ <el-tooltip class="item" :disabled="calculateTooltipDisabled(data)" effect="dark"
+ :content="calculateTooltipContent(data)" placement="left">
<span>{{ data.label }}</span>
</el-tooltip>
</template>
@@ -138,21 +132,25 @@
</div>
</div>
<div class="row-right" v-if="needNum">
- <div>鎸囨爣</div>
+ <div>娆℃暟/鏁伴噺/灏忔椂</div>
<div class="margin-5">
<el-input placeholder="璇疯緭鍏�" v-model="form.num" @input="handleChangeNum" />
</div>
</div>
</div>
</div>
+ <div>
+ {{ ruleDescription}}
+ </div>
+
</el-form-item>
- <el-form-item label="杩愮淮鑰冩牳鎵e垎" style="width: 51%" prop="score">
+ <el-form-item label="杩愮淮鑰冩牳鎵e垎" style="width: 30%" prop="score">
<el-input v-model="form.score"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
- <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
<el-button @click="cancel">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
</div>
</el-dialog>
@@ -164,7 +162,7 @@
<el-form-item label="鑰冩牳鍗曚綅锛�">{{ view.unitName }}</el-form-item>
<el-form-item label="鑰冩牳鍚堝悓锛�">{{ view.contractName }} </el-form-item>
<el-form-item label="鑰冩牳瑙勫垯锛�">{{ view.ruleName }} </el-form-item>
- <el-form-item label="鑰冩牳鎸囨爣锛�">{{ view.num }} </el-form-item>
+ <el-form-item label="瓒呮湡閲忓�硷細">{{ view.num }} </el-form-item>
<el-form-item label="鑰冩牳鎵e垎锛�">{{ view.score }} </el-form-item>
<el-form-item label="鍒涘缓浜猴細">{{ view.createUser }} </el-form-item>
<el-form-item label="鍒涘缓鏃堕棿锛�">{{ view.createTime }} </el-form-item>
@@ -199,6 +197,7 @@
auditingOpen: false,
auditingForm: {},
unitList: [],
+ ruleDescription: '', // 娣诲姞瑙勫垯鎻忚堪瀛楁
// 鑰冩牳妯℃澘
examineList: [
{ id: 1, value: "杞﹁締鑰冩牳" },
@@ -273,8 +272,11 @@
};
},
created() {
- this.getList();
this.getUnitSelect();
+ if(this.$route.query.time){
+ this.daterangeCreateTime= this.$route.query.time
+ }
+ this.getList();
},
methods: {
/** 璇︾粏鎸夐挳鎿嶄綔 */
@@ -289,7 +291,9 @@
let item = this.$refs['cascader'].getCheckedNodes()[0].data;
this.calcObj = item;
this.form.contractId = item.contractId;
+ this.form.ruleName = item.ruleName + " / " + item.label;
this.form.deductCategory = item.deductCategory == '鍒嗘暟涔樹互鏁伴噺' ? '鎵�' + item.calcFraction + '鍒�*鏁伴噺 ' : item.deductCategory == '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�' ? '鎵�' + item.calcFraction + '鍒�/' + item.calcUnit + '灏忔椂' : '鎵�' + item.calcFraction + '鍒�';
+ this.ruleDescription = this.calculateTooltipContent(item);
if (item.deductCategory == "鎵f寚瀹氬垎鏁�") {
this.needNum = false;
this.form.score = item.calcFraction;
@@ -361,6 +365,13 @@
// 杩愮淮鍗曚綅涓嬫媺鍒楄〃
unitSelect().then((res) => {
this.unitList = res.data;
+ if (this.$route.query.unitId) {
+ // 鍏堟壘鍒板搴旂殑閫夐」
+ const unit = this.unitList.find(item => item.id === Number(this.$route.query.unitId) || item.id === this.$route.query.unitId);
+ if (unit) {
+ this.queryParams.unitId = unit.id; // 纭繚绫诲瀷鍖归厤
+ }
+ }
})
},
/** 鏌ヨ杩濊瀹℃牳鍒楄〃 */
@@ -369,12 +380,17 @@
if (null != this.daterangeAuditingTime && '' != this.daterangeAuditingTime) {
this.queryParams["auditingStartTime"] = this.daterangeAuditingTime[0];
this.queryParams["auditingEndTime"] = this.daterangeAuditingTime[1];
+ } else {
+ this.queryParams["auditingStartTime"] = null;
+ this.queryParams["auditingEndTime"] = null;
}
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.queryParams["createStartTime"] = this.daterangeCreateTime[0];
this.queryParams["createEndTime"] = this.daterangeCreateTime[1];
+ } else {
+ this.queryParams["createStartTime"] = null;
+ this.queryParams["createEndTime"] = null;
}
- console.log("this.queryParams", this.queryParams)
listAuditing(this.queryParams).then(response => {
this.auditingList = response.rows;
this.total = response.total;
@@ -427,10 +443,6 @@
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
- if (row.auditingStatus != '寰呭鏍�') {
- this.$message.warning("璇ヨ褰曞凡瀹℃牳锛屼笉鑳戒慨鏀�");
- return;
- }
getAuditing(id).then(response => {
this.form = { ...response.data };
this.open = true;
@@ -480,8 +492,44 @@
this.download('/contract/score/export', {
...this.queryParams
}, `鍚堝悓鑰冩牳绉垎_${new Date().getTime()}.xlsx`)
+ },
+ calculateTooltipDisabled(data) {
+ return data.label.length < 16 && !data.deductCategory;
+ },
+ calculateTooltipContent(data) {
+ let content = '';
+ if (data.label.length < 16) {
+ if (data.deductCategory) {
+ switch (data.deductCategory) {
+ case '鍒嗘暟涔樹互鏁伴噺':
+ content = '鎵�' + data.calcFraction + '鍒�*鏁伴噺 ';
+ break;
+ case '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�':
+ content = '鎵�' + data.calcFraction + '鍒�/' + data.calcUnit + '灏忔椂';
+ break;
+ default:
+ content = '鎵�' + data.calcFraction + '鍒�';
+ }
+ }
+ } else {
+ if (data.deductCategory) {
+ switch (data.deductCategory) {
+ case '鍒嗘暟涔樹互鏁伴噺':
+ content = data.label + ' 鎵�' + data.calcFraction + '鍒�*鏁伴噺 ';
+ break;
+ case '闄や互鏁伴噺鍚庝箻浠ュ垎鏁�':
+ content = data.label + ' 鎵�' + data.calcFraction + '鍒�/' + data.calcUnit + '灏忔椂';
+ break;
+ default:
+ content = data.label + ' 鎵�' + data.calcFraction + '鍒�';
+ }
+ } else {
+ content = data.label;
+ }
+ }
+ return content;
}
- }
+ },
};
</script>
<style scoped>
--
Gitblit v1.8.0