From 4c86504877966bc460aa605d02a2c8195635f8a2 Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期四, 25 四月 2024 18:05:57 +0800
Subject: [PATCH] 合同积分新增、查询、修改、审核、删除、导出
---
src/api/platform/contract-score.js | 2
src/views/system/score/default/index.vue | 153 ++++++++++++++++++++++++++++++++-------------------
2 files changed, 97 insertions(+), 58 deletions(-)
diff --git a/src/api/platform/contract-score.js b/src/api/platform/contract-score.js
index d81bd1a..8e111ea 100644
--- a/src/api/platform/contract-score.js
+++ b/src/api/platform/contract-score.js
@@ -4,7 +4,7 @@
export function listAuditing(data) {
return request({
url: '/contract/score/list',
- method: 'get',
+ method: 'post',
data: data
})
}
diff --git a/src/views/system/score/default/index.vue b/src/views/system/score/default/index.vue
index 7edbf72..2a2670e 100644
--- a/src/views/system/score/default/index.vue
+++ b/src/views/system/score/default/index.vue
@@ -48,7 +48,7 @@
icon="el-icon-plus"
size="mini"
@click="handleAdd"
- v-hasPermi="['system:template:add']"
+ v-hasPermi="['platform:score:add']"
>鏂板</el-button>
</el-col>
<el-col :span="1.5">
@@ -59,7 +59,7 @@
size="mini"
:disabled="single"
@click="handleUpdate"
- v-hasPermi="['system:template:edit']"
+ v-hasPermi="['platform:score:edit']"
>淇敼</el-button>
</el-col>
<el-col :span="1.5">
@@ -70,7 +70,7 @@
size="mini"
:disabled="multiple"
@click="handleDelete"
- v-hasPermi="['system:template:remove']"
+ v-hasPermi="['platform:score:remove']"
>鍒犻櫎</el-button>
</el-col>
<el-col :span="1.5">
@@ -80,7 +80,7 @@
icon="el-icon-download"
size="mini"
@click="handleExport"
- v-hasPermi="['system:template:export']"
+ v-hasPermi="['platform:score:export']"
>瀵煎嚭</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -88,20 +88,20 @@
<el-table v-loading="loading" :data="auditingList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
- <el-table-column label="杩愮淮鑰冩牳鍗曚綅" align="center" prop="unitName" width="180"/>
- <el-table-column label="鑰冩牳鍚�" align="center" prop="checkPublishId" width="180">
+ <el-table-column label="鑰冩牳鍗曚綅" align="center" prop="unitName" width="180"/>
+ <el-table-column label="鑰冩牳鍚堝悓" align="center" prop="contractName" width="180" />
+ <el-table-column label="鑰冩牳瑙勫垯" align="center" prop="ruleName" width="120" :show-overflow-tooltip="true"/>
+ <el-table-column label="鑰冩牳鎸囨爣" align="center" prop="num" width="120" />
+ <el-table-column label="鑰冩牳鎵e垎" align="center" prop="score" width="120" />
+ <el-table-column label="鍒涘缓浜�" align="center" prop="createUser" />
+ <el-table-column label="瀹℃牳鐘舵��" align="center" prop="auditingStatus">
<template slot-scope="scope">
- <div v-if="scope.row.checkPublishId === 5">瑙嗛鑰冩牳</div>
- </template>
+ <el-tag
+ :type="scope.row.auditingStatus === '閫氳繃' ? 'success' : scope.row.auditingStatus === '鏈�氳繃' ? 'danger' : 'primary'"
+ disable-transitions>{{scope.row.auditingStatus}}</el-tag>
+ </template>
</el-table-column>
- <el-table-column label="杩愮淮鑰冩牳瑙勫垯" align="center" prop="defaultRuleName" width="180" />
- <el-table-column label="杩愮淮鑰冩牳鎵e垎" align="center" prop="score" width="120" />
- <el-table-column label="鍒涘缓浜�" align="center" prop="createBy" />
- <el-table-column label="瀹℃牳浜�" align="center" prop="auditingUserName" />
- <el-table-column label="瀹℃牳鐘舵��" align="center" prop="auditingStatus" />
- <el-table-column label="瀹℃牳璇存槑" align="center" prop="remark" width="180"/>
- <el-table-column label="瀹℃牳鏃堕棿" align="center" prop="auditingTime" width="180"/>
- <el-table-column label="鍒涘缓鏃堕棿" align="center" prop="createTime" width="180"/>
+ <el-table-column label="瀹℃牳浜�" align="center" prop="auditingUser" />
<el-table-column label="鎿嶄綔" align="center" fixed="right" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@@ -110,14 +110,15 @@
icon="el-icon-s-check"
@click="handleAuditing(scope.row)"
v-hasPermi="['default:audit']"
+ v-if="scope.row.auditingStatus === '寰呭鏍�'"
>瀹℃牳</el-button>
-<!-- <el-button-->
-<!-- size="mini"-->
-<!-- type="text"-->
-<!-- icon="el-icon-edit"-->
-<!-- @click="handleUpdate(scope.row)"-->
-<!-- v-hasPermi="['system:auditing:edit']"-->
-<!-- >淇敼</el-button>-->
+ <el-button
+ size="mini"
+ type="text"
+ icon="el-icon-edit"
+ @click="handleUpdate(scope.row)"
+ v-hasPermi="['system:auditing:edit']"
+ >淇敼</el-button>
<el-button
size="mini"
type="text"
@@ -144,14 +145,17 @@
</el-form-item>
<el-form-item label="杩愮淮鑰冩牳瑙勫垯">
- <el-input v-model="auditingForm.defaultRuleName" disabled/>
+ <el-input v-model="auditingForm.ruleName" type="textarea" autosize disabled/>
+ </el-form-item>
+ <el-form-item label="杩愮淮鑰冩牳鎸囨爣">
+ <el-input v-model="auditingForm.num" disabled/>
</el-form-item>
<el-form-item label="杩愮淮鑰冩牳鎵e垎">
<el-input v-model="auditingForm.score" disabled/>
</el-form-item>
<el-form-item label="瀹℃牳缁撴灉" prop="auditingStatus">
- <el-radio v-model="auditingForm.auditingResult" label="pass">閫氳繃</el-radio>
- <el-radio v-model="auditingForm.auditingResult" label="return">椹冲洖</el-radio>
+ <el-radio v-model="auditingForm.auditingStatus" label="閫氳繃">閫氳繃</el-radio>
+ <el-radio v-model="auditingForm.auditingStatus" label="鏈�氳繃">椹冲洖</el-radio>
</el-form-item>
<el-form-item label="瀹℃牳璇存槑" prop="remark">
<el-input v-model="auditingForm.remark" type="textarea" show-word-limit maxlength="100"/>
@@ -164,8 +168,8 @@
</el-dialog>
<!-- 鏂板鎴栦慨鏀� -->
- <el-dialog title="杩愮淮绉垎瀹℃牳" :visible.sync="open" width="700px" append-to-body>
- <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="120px">
+ <el-dialog :title="title" :visible.sync="open" width="700px" 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">
<el-option
@@ -176,7 +180,7 @@
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="杩愮淮鑰冩牳瑙勫垯" prop="tempRuleFormList">
+ <el-form-item label="杩愮淮鑰冩牳瑙勫垯" prop="ruleIdsArray">
<div class="row-warp">
<div class="row">
<div class="row-left">
@@ -184,7 +188,7 @@
<span class="demonstration"></span>
<el-cascader
ref="cascader"
- v-model="value"
+ v-model="form.ruleIdsArray"
:options="options"
@change="handleChange">
<template slot-scope="{ data }">
@@ -204,18 +208,18 @@
<div class="row-right" v-if="needNum">
<div>鎸囨爣</div>
<div class="margin-5">
- <el-input type="number" placeholder="璇疯緭鍏�" v-model="form.num" @change="handleChangeNum"/>
+ <el-input placeholder="璇疯緭鍏�" v-model="form.num" @input="handleChangeNum"/>
</div>
</div>
</div>
</div>
</el-form-item>
- <el-form-item label="杩愮淮鑰冩牳鎵e垎" style="width: 51%">
- <el-input type="number" v-model="form.score"></el-input>
+ <el-form-item label="杩愮淮鑰冩牳鎵e垎" style="width: 51%" 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="submitAuditing">纭� 瀹�</el-button>
+ <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
<el-button @click="cancel">鍙� 娑�</el-button>
</div>
</el-dialog>
@@ -223,9 +227,9 @@
</template>
<script>
-import { listAuditing, getAuditing, delAuditing, addAuditing, updateAuditing,auditing } from "@/api/platform/contract-score";
+import { listAuditing, getAuditing, delAuditing, addAuditing, updateAuditing, auditing } from "@/api/platform/contract-score";
import { unitSelect } from "@/api/platform/unit";
-import { getRuleListByUnitId } from "@/api/platform/calculate-rule";
+import { getRuleListByUnitId, getRule } from "@/api/platform/calculate-rule";
export default {
name: "Auditing",
@@ -241,10 +245,6 @@
{id:1 , value:"杞﹁締鑰冩牳"},
{id:2 , value:"瑙嗛鑰冩牳"}
],
- // 涓存椂瑙勫垯琛ㄥ崟
- tempRuleForm: {},
- // 涓存椂瑙勫垯琛ㄥ崟鍒楄〃
- tempRuleFormList: [{"ruleId": null, "adjustCoefficient": null}],
// 閬僵灞�
loading: true,
// 閫変腑鏁扮粍
@@ -272,7 +272,7 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- defaultId: null,
+ unitId: null,
auditingStatus: null,
auditingTime: null,
auditingUser: null,
@@ -283,9 +283,31 @@
// 琛ㄥ崟鏍¢獙
auditingRules: {
auditingStatus: [
- { required: true, message: "璇峰厛瀹屾垚瀹℃牳缁撴灉", trigger: "blur" }
+ { required: true, message: "璇峰厛瀹屾垚瀹℃牳缁撴灉", trigger: "blur", },
+ {
+ validator: (rule, value, callback) => {
+ if (value === '寰呭鏍�') {
+ callback(new Error("璇峰厛瀹屾垚瀹℃牳缁撴灉"));
+ } else {
+ callback();
+ }
+ },
+ trigger: 'blur'
+ }
],
- }
+ },
+ rules: {
+ unitId: [
+ { required: true, message: "璇烽�夋嫨杩愮淮鑰冩牳鍗曚綅", trigger: "blur" }
+ ],
+ ruleIdsArray: [
+ { required: true, message: "璇烽�夋嫨杩愮淮鑰冩牳瑙勫垯", trigger: "blur" }
+ ],
+ score: [
+ { required: true, message: "鍒嗘暟涓嶈兘涓虹┖", trigger: "blur" }
+ ]
+ },
+ calcObj: {}
};
},
created() {
@@ -293,9 +315,13 @@
this.getUnitSelect();
},
methods: {
+ /**
+ * 閫夋嫨瑙勫垯
+ */
handleChange() {
let item = this.$refs['cascader'].getCheckedNodes()[0].data;
- console.log("item", item);
+ this.calcObj = item;
+ this.form.contractId = item.contractId;
if (item.deductCategory == "鎵f寚瀹氬垎鏁�") {
this.needNum = false;
this.form.score = item.calcFraction;
@@ -303,9 +329,19 @@
this.needNum = true;
this.form.score = null;
}
+ if (this.form.num != null && this.needNum) {
+ this.handleChangeNum();
+ }
},
+ /**
+ * 杈撳叆鎸囨爣
+ */
handleChangeNum() {
- // 绠楀垎
+ if (this.calcObj.deductCategory == "鍒嗘暟涔樹互鏁伴噺") {
+ this.form.score = Math.floor(this.calcObj.calcFraction * this.form.num * 100) / 100;
+ } else if (this.calcObj.deductCategory == "闄や互鏁伴噺鍚庝箻浠ュ垎鏁�") {
+ this.form.score = Math.floor(Math.ceil(this.form.num / this.calcObj.calcUnit) * this.calcObj.calcFraction * 100) / 100;
+ }
},
handleChangeUnit(value) {
getRuleListByUnitId(value).then((res) => {
@@ -343,8 +379,7 @@
// 鎵撳紑瀹℃牳
handleAuditing(row) {
this.auditingOpen = true;
- this.auditingForm = row;
- this.auditingForm.auditingStatus = this.auditingForm.auditingStatus ? this.auditingForm.auditingStatus : null
+ this.auditingForm = {...row};
},
// 鍏抽棴瀹℃牳
closeAuditing() {
@@ -370,8 +405,9 @@
this.queryParams["createStartTime"] = this.daterangeCreateTime[0];
this.queryParams["createEndTime"] = this.daterangeCreateTime[1];
}
+ console.log("this.queryParams", this.queryParams)
listAuditing(this.queryParams).then(response => {
- this.auditingList = response.data;
+ this.auditingList = response.rows;
this.total = response.total;
this.loading = false;
});
@@ -386,20 +422,15 @@
reset() {
this.form = {
id: null,
- defaultId: null,
auditingStatus: null,
remark: null,
auditingTime: null,
- auditingUser: null,
- createTime: null,
- updateTime: null,
- deleted: null
+ auditingUser: null
};
this.resetForm("form");
},
/** 鎼滅储鎸夐挳鎿嶄綔 */
handleQuery() {
- this.queryParams.pageNum = 1;
this.getList();
},
/** 閲嶇疆鎸夐挳鎿嶄綔 */
@@ -428,11 +459,19 @@
getAuditing(id).then(response => {
this.form = response.data;
this.open = true;
- this.title = "淇敼杩愮淮鑰冩牳瀹℃牳";
+ this.title = "淇敼杩愮淮鑰冩牳绉垎";
+ this.handleChangeUnit(this.form.unitId);
+ getRule(this.form.ruleId).then(res => {
+ this.calcObj = res.data;
+ if (this.calcObj.deductCategory != "鎵f寚瀹氬垎鏁�") {
+ this.needNum = true;
+ }
+ })
});
},
/** 鎻愪氦鎸夐挳 */
submitForm() {
+ this.form.ruleId = this.calcObj.id;
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
@@ -463,9 +502,9 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.download('/default-auditing/export', {
+ this.download('/contract/score/export', {
...this.queryParams
- }, `auditing_${new Date().getTime()}.xlsx`)
+ }, `鍚堝悓鑰冩牳绉垎_${new Date().getTime()}.xlsx`)
}
}
};
--
Gitblit v1.8.0