From 4fa44f71fbb58abf9256f8bd872b8e0890f49f9c Mon Sep 17 00:00:00 2001
From: 龚焕茏 <2842157468@qq.com>
Date: 星期三, 24 四月 2024 18:08:59 +0800
Subject: [PATCH] 合同规则分三层、合同积分新增
---
src/views/system/contract/index.vue | 5 +
src/api/platform/calculate-rule.js | 8 ++
src/views/system/score/default/index.vue | 119 +++++++++++++++++++++------------------
3 files changed, 76 insertions(+), 56 deletions(-)
diff --git a/src/api/platform/calculate-rule.js b/src/api/platform/calculate-rule.js
index fd72c18..0979320 100644
--- a/src/api/platform/calculate-rule.js
+++ b/src/api/platform/calculate-rule.js
@@ -17,6 +17,14 @@
})
}
+// 鏍规嵁杩愮淮鍗曚綅鏌ヨ杩濈害瑙勫垯鍒楄〃
+export function getRuleListByUnitId(data) {
+ return request({
+ url: '/calculate/rule/getRuleListByUnitId?unitId=' + data,
+ method: 'get'
+ })
+}
+
// 鏌ヨ杩濈害瑙勫垯璇︾粏
export function getRule(id) {
return request({
diff --git a/src/views/system/contract/index.vue b/src/views/system/contract/index.vue
index f04da84..0521346 100644
--- a/src/views/system/contract/index.vue
+++ b/src/views/system/contract/index.vue
@@ -34,8 +34,8 @@
<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" effect="dark" :content="item.deductCategory + ' ' + item.calcFraction + (item.calcUnit ? '/' + item.calcUnit : '')" placement="top">
- <span>{{ item.ruleCondition }}</span>
+ <el-tooltip class="item" v-for="(item, index) in item.children" :key="index" effect="dark" :content="item.deductCategory + ' ' + item.calcFraction + (item.calcUnit ? '/' + item.calcUnit : '')" placement="top">
+ <span>{{ item.ruleCondition }}<br/></span>
<!-- {{ item.deductCategory }} {{ item.calcFraction }}{{ item.calcUnit ? "/" + item.calcUnit : '' }} -->
</el-tooltip>
</div>
@@ -179,6 +179,7 @@
methods: {
submitForm() {
updateContract(this.form).then(response => {
+ this.detail = false;
if (response.code != 200) {
this.$message.error("鎿嶄綔澶辫触");
} else {
diff --git a/src/views/system/score/default/index.vue b/src/views/system/score/default/index.vue
index 126fd5e..7edbf72 100644
--- a/src/views/system/score/default/index.vue
+++ b/src/views/system/score/default/index.vue
@@ -164,59 +164,54 @@
</el-dialog>
<!-- 鏂板鎴栦慨鏀� -->
- <el-dialog title="杩愮淮绉垎瀹℃牳" :visible.sync="open" width="700px"append-to-body>
+ <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-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>
- </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>
+ 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="tempRuleFormList">
<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
+ ref="cascader"
v-model="value"
: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 type="number" placeholder="璇疯緭鍏�" v-model="form.num" @change="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%">
+ <el-input type="number" v-model="form.score"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@@ -230,33 +225,17 @@
<script>
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";
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:"杞﹁締鑰冩牳"},
@@ -314,8 +293,36 @@
this.getUnitSelect();
},
methods: {
- handleChange(value) {
- console.log(value);
+ handleChange() {
+ let item = this.$refs['cascader'].getCheckedNodes()[0].data;
+ console.log("item", item);
+ if (item.deductCategory == "鎵f寚瀹氬垎鏁�") {
+ this.needNum = false;
+ this.form.score = item.calcFraction;
+ } else {
+ this.needNum = true;
+ this.form.score = null;
+ }
+ },
+ handleChangeNum() {
+ // 绠楀垎
+ },
+ 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() {
@@ -489,4 +496,8 @@
flex-direction: row;
}
</style>
-
+<style>
+.el-cascader-node {
+ max-width: 300px;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.8.0