From 6c400ee3d20b3d8dfce64647b238d758523ab631 Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期五, 26 四月 2024 10:39:08 +0800
Subject: [PATCH] Merge branch 'dev-threejs'
---
src/views/system/score/default/index.vue | 263 +++++++++++++++++++++++++++++++--------------------
1 files changed, 159 insertions(+), 104 deletions(-)
diff --git a/src/views/system/score/default/index.vue b/src/views/system/score/default/index.vue
index 126fd5e..d62817e 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,16 @@
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-if="scope.row.auditingStatus === '寰呭鏍�'"
+ v-hasPermi="['system:auditing:edit']"
+ >淇敼</el-button>
<el-button
size="mini"
type="text"
@@ -144,14 +146,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,63 +169,58 @@
</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-form-item label="杩愮淮鑰冩牳鍗曚綅" prop="unitName">
- <el-select v-model="form.unitNameList" placeholder="杩愮淮鑰冩牳鍗曚綅">
+ <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
- v-for="item in unitNameList"
- :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="examineId">
- <el-select v-model="form.examineId" placeholder="鑰冩牳鍚�" >
- <el-option
- v-for="item in examineList"
- :key="item.id"
- :label="item.value"
- :value="item.id">
- </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" v-for="(form) in tempRuleFormList">
+ <div class="row">
<div class="row-left">
- <div>瑙勫垯</div>
<div class="block">
<span class="demonstration"></span>
<el-cascader
- v-model="value"
+ ref="cascader"
+ v-model="form.ruleIdsArray"
:options="options"
- :props = "props"
- @change="handleChange"></el-cascader>
+ @change="handleChange">
+ <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.calcUnit ? '/' + data.calcUnit : '') : '' : (data.deductCategory ? data.label + ' ' + data.deductCategory + ' ' + data.calcFraction + (data.calcUnit ? '/' + data.calcUnit : '') : data.label)"
+ placement="left"
+ >
+ <span>{{ data.label }}</span>
+ </el-tooltip>
+ </template>
+ </el-cascader>
</div>
</div>
- <div class="row-right">
+ <div class="row-right" v-if="needNum">
<div>鎸囨爣</div>
<div class="margin-5">
- <el-input type="number" v-model="form.weight"/>
+ <el-input placeholder="璇疯緭鍏�" v-model="form.num" @input="handleChangeNum"/>
</div>
</div>
- <div class="item-op">
- <el-button @click="removeRule(form)" type="danger" icon="el-icon-delete" circle></el-button>
- </div>
- </div>
- <div style="margin-top: 25px">
- <el-button type="success" @click="nextAdd" size="mini" plain>娣诲姞</el-button>
</div>
</div>
</el-form-item>
- <el-form-item label="杩愮淮鑰冩牳鎵e垎" style="width: 20%">
- <el-input v-model="auditingForm.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>
@@ -228,44 +228,24 @@
</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, getRule } from "@/api/platform/calculate-rule";
export default {
name: "Auditing",
data() {
return {
- options: [{
- value: 'city',
- label: '鍓嶇鎰熺煡婧愭不鐞嗗伐浣�',
- children: [{
- value: 'fushun',
- label: '鏃堕挓鍚屾',
- }, {
- value: 'rong',
- label: 'OSD鏍囪瘑鏈慨澶�',
- }, {
- value: 'rong',
- label: '涓�鏈轰竴妗d笉鍚堟牸',
- }
- ]
- },
- ],
+ needNum: false,
+ options: [],
auditingOpen: false,
auditingForm: {},
unitList: [],
- unitNameList: [
- {id:2 , value:"鎴愰兘x杩愮淮"}
- ],
// 鑰冩牳妯℃澘
examineList: [
{id:1 , value:"杞﹁締鑰冩牳"},
{id:2 , value:"瑙嗛鑰冩牳"}
],
- // 涓存椂瑙勫垯琛ㄥ崟
- tempRuleForm: {},
- // 涓存椂瑙勫垯琛ㄥ崟鍒楄〃
- tempRuleFormList: [{"ruleId": null, "adjustCoefficient": null}],
// 閬僵灞�
loading: true,
// 閫変腑鏁扮粍
@@ -293,7 +273,7 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- defaultId: null,
+ unitId: null,
auditingStatus: null,
auditingTime: null,
auditingUser: null,
@@ -304,9 +284,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() {
@@ -314,8 +316,50 @@
this.getUnitSelect();
},
methods: {
- handleChange(value) {
- console.log(value);
+ /**
+ * 閫夋嫨瑙勫垯
+ */
+ handleChange() {
+ let item = this.$refs['cascader'].getCheckedNodes()[0].data;
+ this.calcObj = item;
+ this.form.contractId = item.contractId;
+ if (item.deductCategory == "鎵f寚瀹氬垎鏁�") {
+ this.needNum = false;
+ this.form.score = item.calcFraction;
+ } else {
+ 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) => {
+ this.options = this.getTreeData(res.data);
+ })
+ },
+ getTreeData(data){
+ for(var i=0;i<data.length;i++){
+ if(data[i].children.length<1){
+ // children鑻ヤ负绌烘暟缁勶紝鍒欏皢children璁句负undefined
+ data[i].children=undefined;
+ }else {
+ // children鑻ヤ笉涓虹┖鏁扮粍锛屽垯缁х画 閫掑綊璋冪敤 鏈柟娉�
+ this.getTreeData(data[i].children);
+ }
+ }
+ return data;
},
// 鎻愪氦瀹℃牳
submitAuditing() {
@@ -336,8 +380,7 @@
// 鎵撳紑瀹℃牳
handleAuditing(row) {
this.auditingOpen = true;
- this.auditingForm = row;
- this.auditingForm.auditingStatus = this.auditingForm.auditingStatus ? this.auditingForm.auditingStatus : null
+ this.auditingForm = {...row};
},
// 鍏抽棴瀹℃牳
closeAuditing() {
@@ -363,8 +406,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;
});
@@ -379,20 +423,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();
},
/** 閲嶇疆鎸夐挳鎿嶄綔 */
@@ -418,14 +457,26 @@
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;
- 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) {
@@ -456,9 +507,9 @@
},
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
handleExport() {
- this.download('/default-auditing/export', {
+ this.download('/contract/score/export', {
...this.queryParams
- }, `auditing_${new Date().getTime()}.xlsx`)
+ }, `鍚堝悓鑰冩牳绉垎_${new Date().getTime()}.xlsx`)
}
}
};
@@ -489,4 +540,8 @@
flex-direction: row;
}
</style>
-
+<style>
+.el-cascader-node {
+ max-width: 300px;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.8.0