fuliqi
2024-04-07 39e843701bf637cd653bfdeb0d88ef4cacbc8152
考核规则
10个文件已修改
407 ■■■■■ 已修改文件
src/api/platform/check-rule.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/platform/check-template.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/system/dept.js 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/calculate/order/index.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/calculate/record/index.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/calculate/report/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/contract/index.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/rule/city/index.vue 195 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/rule/province/index.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/template/city/index.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/platform/check-rule.js
@@ -4,7 +4,7 @@
export function listCheckRule(query) {
  return request({
    url: '/check/rule/list',
    method: 'get',
    method: 'post',
    data: query
  })
}
src/api/platform/check-template.js
@@ -43,10 +43,10 @@
  })
}
// 获取运维单位下拉列表
// 获取下拉列表
export function templateSelect() {
  return request({
    url: '/check/template/list',
    url: '/check/template/pullList',
    method: 'get'
  })
}
src/api/system/dept.js
@@ -51,10 +51,17 @@
  })
}
// 获取运维单位下拉列表
// 获取部门下拉列表
export function deptSelect() {
  return request({
    url: '/system/dept/all',
    method: 'get'
  })
}
// 获取区域下拉列表
export function areaSelect() {
  return request({
    url: '/system/dept/pullList',
    method: 'get'
  })
}
src/views/system/calculate/order/index.vue
@@ -22,18 +22,6 @@
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="考核范围" prop="examineRange">
        <el-select v-model="queryParams.examineRange" clearable  @clear="handleQuery" placeholder="考核范围">
          <el-option
            label="市局考核"
            value="2">
          </el-option>
          <el-option
            label="分局考核"
            value="1">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="考核时间">
        <el-date-picker
          v-model="daterangeCheckTime"
@@ -86,10 +74,10 @@
    <el-card class="box-card" v-for="(item) in checkResultList">
      <div slot="header" class="clearfix">
        <span>{{ item.checkUnitName }}</span>
        <span>{{ checkUnitName }}</span>
        <el-button style="float: right; padding: 3px 0" type="text" @click="handleDetail(item)">详情</el-button>
      </div>
      <div class="text item">考核<span class="time">{{ item.examineName }}</span></div>
      <div class="text item">考核<span class="time">{{ examineName }}</span></div>
      <div class="text item">考核频率<span class="time">{{ "季度考核" }}</span></div>
      <div class="text item">考核分数<span class="time">{{ item.checkScore }}</span></div>
      <div class="text item">考核时间
@@ -155,21 +143,14 @@
            <i class="el-icon-user"></i>
            考核对象
          </template>
          {{detail.checkUnitName}}
          {{checkUnitName}}
        </el-descriptions-item>
        <el-descriptions-item>
          <template slot="label">
            <i class="el-icon-s-management"></i>
            考核名称
          </template>
          {{detail.examineName}}
        </el-descriptions-item>
        <el-descriptions-item>
          <template slot="label">
            <i class="el-icon-full-screen"></i>
            考核范围
          </template>
          <el-tag size="small">{{detail.examineRange === 1 ? '分局考核' : '市局考核'}}</el-tag>
          {{examineName}}
        </el-descriptions-item>
        <el-descriptions-item>
          <template slot="label">
@@ -231,6 +212,8 @@
      detail:{
      },
      checkUnitName: '成都x运维',
      examineName: '成都x运维考核',
      tableData: [{
        name: '视频平均在线率',
        content: '97%',
@@ -313,7 +296,7 @@
        this.queryParams["end"] = this.daterangeCheckTime[1];
      }
      listCheckResult(this.queryParams).then(response => {
        this.checkResultList = response.data;
        this.checkResultList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
src/views/system/calculate/record/index.vue
@@ -90,7 +90,7 @@
          <div v-if="scope.row.unitId == 2">成都x运维</div>
        </template>
      </el-table-column>
      <el-table-column label="总服务费" align="center" prop="totalMount" />
      <el-table-column label="总服务费" align="center" prop="totalAmount" />
      <el-table-column label="扣减服务费" align="center" prop="deductAmount" />
      <el-table-column label="考核分数" align="center" prop="score" />
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -144,8 +144,8 @@
            placeholder="请选择核算记录日期">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="总服务费" prop="totalMount">
          <el-input v-model="form.totalMount" placeholder="请输入总服务费" />
        <el-form-item label="总服务费" prop="totalAmount">
          <el-input v-model="form.totalAmount" placeholder="请输入总服务费" />
        </el-form-item>
        <el-form-item label="扣减服务费" prop="deductAmount">
          <el-input v-model="form.deductAmount" placeholder="请输入扣减服务费" />
@@ -194,7 +194,7 @@
        date: null,
        ruleId: null,
        unitId: null,
        totalMount: null,
        totalAmount: null,
        deductAmount: null,
        score: null
      },
@@ -233,7 +233,7 @@
        date: null,
        ruleId: null,
        unitId: null,
        totalMount: null,
        totalAmount: null,
        deductAmount: null,
        score: null
      };
src/views/system/calculate/report/index.vue
@@ -77,8 +77,6 @@
      <el-button size="small" round style="float: right;margin-bottom: 18px;" @click="handlePublish(item)" v-show="item.publish == 1"  v-hasPermi="['result:contract:publish']">已发布</el-button>
    </el-card>
    <pagination
      v-show="total>0"
      :total="total"
src/views/system/contract/index.vue
@@ -27,26 +27,15 @@
          @click="handleAdd"
        >新增</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
      <el-col :span="1.5">
        <el-button
          type="success"
          type="warning"
          plain
          icon="el-icon-edit"
          icon="el-icon-top"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
        >修改</el-button>
      </el-col> -->
      <!-- <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
        >删除</el-button>
      </el-col> -->
          @click="handleImportPoint"
        >导入</el-button>
      </el-col>
    </el-row>
src/views/system/rule/city/index.vue
@@ -11,16 +11,25 @@
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="创建时间" prop="createTime">
        <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-form-item label="考核模板" prop="templateId">
        <el-select v-model="queryParams.templateId" placeholder="考核模板" clearable>
          <el-option
            v-for="item in templateList"
            :key="item.id"
            :label="item.templateName"
            :value="item.id">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="规则类型" prop="ruleCategory">
        <el-select v-model="queryParams.ruleCategory" placeholder="规则类型" clearable>
          <el-option
            v-for="dict in dict.type.platform_rule_category"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -75,12 +84,14 @@
          <dict-tag :options="dict.type.platform_rule_category" :value="scope.row.ruleCategory"/>
        </template>
      </el-table-column>
      <el-table-column label="创建时间" align="center" prop="createTime" />
      <el-table-column label="考核模板" align="center" prop="templateName" />
      <el-table-column label="审核状态" align="center" prop="auditState">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.platform_audit_state" :value="scope.row.auditState"/>
        </template>
      </el-table-column>
      <el-table-column label="审核说明" align="center" prop="auditDescription"/>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
          <template slot-scope="scope">
            <el-button
@@ -118,60 +129,43 @@
    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="规则名称" prop="ruleName">
          <el-input v-model="form.ruleName" placeholder="请输入规则名称" />
          <el-input v-model="form.ruleName" placeholder="请输入规则名称"/>
        </el-form-item>
        <el-form-item label="考核类型" prop="examineCategory">
          <el-radio-group v-model="form.examineCategory" placeholder="考核类型">
            <el-radio
              v-for="dict in dict.type.plateform_examine_category"
          <el-select v-model="form.examineCategory" placeholder="考核类型" disabled>
            <el-option
              v-for="dict in dict.type.platform_examine_category"
              :key="dict.value"
              :value="dict.value">
            {{dict.label}}</el-radio>
          </el-radio-group>
              :label="dict.label"
              :value="parseInt(dict.value)"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="规则类型" prop="category">
          <el-radio-group v-model="form.examineCategory" placeholder="考核类型">
            <el-radio
              v-for="dict in dict.type.plateform_rule_category"
        <el-form-item label="规则类型" prop="ruleCategory">
          <el-select v-model="form.ruleCategory" placeholder="考核类型" disabled>
            <el-option
              v-for="dict in dict.type.platform_rule_category"
              :key="dict.value"
              :value="dict.value">
              {{dict.label}}</el-radio>
          </el-radio-group>
              :label="dict.label"
              :value="dict.value"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="规则描述" prop="ruleDescription">
          <el-input v-model="form.ruleDetail" type="textarea" show-word-limit maxlength="150" placeholder="请输入规则描述"/>
          <el-input v-model="form.ruleDescription" type="textarea" placeholder="请输入规则名称"/>
        </el-form-item>
        <el-form-item label="参数配置" prop="ruleDetail">
          <div class="row-warp">
            <div class="row">
              <div class="row-left">参数名</div>
              <div class="row-right">条件</div>
            </div>
            <div class="row">
              <div class="row-left">天网视频点位数</div>
              <div class="row-right">
                <div>不少于</div>
                <div>
                  <el-input class="input-w" type="number" v-model="form.videoPointNum"/>{{" %"}}
                </div>
              </div>
            </div>
            <div class="row">
              <div class="row-left">车辆卡口点位数</div>
              <div class="row-right">
                <div>不少于</div>
                <div><el-input class="input-w" type="number" v-model="form.vehicleCheckpointNum"/></div>{{" %"}}
              </div>
            </div>
            <div class="row">
              <div class="row-left">人脸卡口点位数</div>
              <div class="row-right">
                <div>不少于</div>
                <div>
                  <el-input class="input-w" type="number" v-model="form.faceChceckpointNum" /></div>{{" %"}}
                </div>
            </div>
          </div>
        <el-form-item label="考核模板" prop="templateId">
          <el-select v-model="form.templateId" placeholder="请选择">
            <el-option
              v-for="item in templateList"
              :key="item.id"
              :label="item.templateName"
              :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="权重" prop="weight">
          <el-input type="number" v-model="form.weight" placeholder="请输入权重"/>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
@@ -188,58 +182,42 @@
        <el-input v-model="form.ruleName" placeholder="请输入规则名称" disabled/>
      </el-form-item>
      <el-form-item label="考核类型" prop="examineCategory">
        <el-radio-group v-model="form.examineCategory" placeholder="考核类型">
          <el-radio
            v-for="dict in dict.type.plateform_examine_category"
        <el-select v-model="form.examineCategory" placeholder="考核类型" disabled>
          <el-option
            v-for="dict in dict.type.platform_examine_category"
            :key="dict.value"
            :value="dict.value">
            {{dict.label}}</el-radio>
        </el-radio-group>
            :label="dict.label"
            :value="parseInt(dict.value)"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="规则类型" prop="category">
        <el-radio-group v-model="form.examineCategory" placeholder="考核类型">
          <el-radio
            v-for="dict in dict.type.plateform_rule_category"
      <el-form-item label="规则类型" prop="ruleCategory">
        <el-select v-model="form.ruleCategory" placeholder="考核类型" disabled>
          <el-option
            v-for="dict in dict.type.platform_rule_category"
            :key="dict.value"
            :value="dict.value">
            {{dict.label}}</el-radio>
        </el-radio-group>
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </el-form-item>
      <el-form-item label="规则描述" prop="ruleDescription">
        <el-input v-model="form.ruleDetail" type="textarea" show-word-limit maxlength="150" placeholder="请输入规则描述" disabled/>
        <el-input v-model="form.ruleDescription" type="textarea" placeholder="请输入规则名称" disabled/>
      </el-form-item>
      <el-form-item label="参数配置" prop="ruleDetail" disabled>
        <div class="row-warp">
          <div class="row">
            <div class="row-left">参数名</div>
            <div class="row-right">条件</div>
          </div>
          <div class="row">
            <div class="row-left">天网视频点位数</div>
            <div class="row-right">
              <div>不少于</div>
              <div>
                <el-input class="input-w" type="number" v-model="form.videoPointNum" disabled/>
              </div>
            </div>
          </div>
          <div class="row">
            <div class="row-left">车辆卡口点位数</div>
            <div class="row-right">
              <div>不少于</div>
              <div><el-input class="input-w" type="number" v-model="form.vehicleCheckpointNum" disabled/></div>
            </div>
          </div>
          <div class="row">
            <div class="row-left">人脸卡口点位数</div>
            <div class="row-right">
              <div>不少于</div>
              <div>
                <el-input class="input-w" type="number" v-model="form.faceChceckpointNum" disabled/></div>
            </div>
          </div>
        </div>
      <el-form-item label="考核模板" prop="templateId">
        <el-select v-model="form.templateId" placeholder="请选择" disabled>
          <el-option
            v-for="item in templateList"
            :key="item.id"
            :label="item.templateName"
            :value="item.id">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="权重" prop="weight">
        <el-input type="number" v-model="form.weight" placeholder="请输入权重" disabled/>
      </el-form-item>
      <el-form-item label="审核结果" prop="auditState" >
        <el-radio-group v-model="form.auditState">
        <el-radio :label="1">通过</el-radio>
@@ -261,7 +239,7 @@
<script>
import { listCheckRule, getCheckRule, delCheckRule, addCheckRule, updateCheckRule } from "@/api/platform/check-rule";
import { templateSelect} from   "@/api/platform/check-template"
export default {
  name: "CheckRule",
  dicts: ['platform_audit_state','platform_examine_category','platform_rule_category'],
@@ -279,6 +257,7 @@
      showSearch: true,
      // 总条数
      total: 0,
      templateList:[],
      // 考核规则表格数据
      checkRuleList: [],
      daterangeCreateTime: [],
@@ -294,6 +273,9 @@
        pageSize: 10,
        ruleName: null,
        createTime: null,
        ruleCategory: null,
        templateId: null,
        examineCategory: 1,
      },
      // 表单参数
      form: {},
@@ -307,8 +289,15 @@
  },
  created() {
    this.getList();
    this.getTemplateSelect();
  },
  methods: {
    /** 考核模板下拉列表 */
    getTemplateSelect() {
      templateSelect().then((res) => {
        this.templateList = res.data;
      })
    },
    /** 查询考核规则列表 */
    getList() {
      this.loading = true;
src/views/system/rule/province/index.vue
@@ -76,7 +76,7 @@
        </template>
      </el-table-column>
      <el-table-column label="规则描述" align="center" prop="ruleDetail" />
      <el-table-column label="创建时间" align="center" prop="createTime" />
      <el-table-column label="考核模板" align="center" prop="ruleDetail" />
      <el-table-column label="审核状态" align="center" prop="auditState">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.platform_audit_state" :value="scope.row.auditState"/>
@@ -213,38 +213,7 @@
      <el-form-item label="规则描述" prop="ruleDetail">
        <el-input v-model="form.ruleDetail" type="textarea" show-word-limit maxlength="150" placeholder="请输入规则描述" disabled/>
      </el-form-item>
      <el-form-item label="参数配置" prop="ruleDetail" disabled>
        <div class="row-warp">
          <div class="row">
            <div class="row-left">参数名</div>
            <div class="row-right">条件</div>
          </div>
          <div class="row">
            <div class="row-left">天网视频点位数</div>
            <div class="row-right">
              <div>不少于</div>
              <div>
                <el-input class="input-w" type="number" v-model="form.videoPointNum" disabled/>
              </div>
            </div>
          </div>
          <div class="row">
            <div class="row-left">车辆卡口点位数</div>
            <div class="row-right">
              <div>不少于</div>
              <div><el-input class="input-w" type="number" v-model="form.vehicleCheckpointNum" disabled/></div>
            </div>
          </div>
          <div class="row">
            <div class="row-left">人脸卡口点位数</div>
            <div class="row-right">
              <div>不少于</div>
              <div>
                <el-input class="input-w" type="number" v-model="form.faceChceckpointNum" disabled/></div>
            </div>
          </div>
        </div>
      </el-form-item>
      <el-table-column label="考核模板" align="center" prop="templateId" />
      <el-form-item label="审核结果" prop="auditState" >
        <el-radio-group v-model="form.auditState">
        <el-radio :label="1">通过</el-radio>
@@ -299,6 +268,7 @@
        pageSize: 10,
        ruleName: null,
        createTime: null,
        examineCategory: 0,
      },
      // 表单参数
      form: {},
@@ -322,7 +292,7 @@
        this.queryParams["end"] = this.daterangeCreateTime[1];
      }
      listCheckRule(this.queryParams).then(response => {
        this.checkRuleList = response.data;
        this.checkRuleList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
src/views/system/template/city/index.vue
@@ -79,16 +79,14 @@
    <el-table v-loading="loading" :data="checkTemplateList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="模板名称" align="center" prop="templateName" width="220px"/>
      <el-table-column label="考核类型" align="center" prop="examineCategory" />
      <el-table-column label="考核对象" align="center" prop="unitId" width="400px" >
      <el-table-column label="考核类型" align="center" prop="examineCategory" >
        <template slot-scope="scope">
          <div v-if="scope.row.unitId === 2">成都x运维</div>
          <div v-else-if="scope.row.unitId === 3">富顺县,荣县,高新区,自流井区,贡井区,大安区,沿滩区</div>
          <dict-tag :options="dict.type.platform_examine_category" :value="scope.row.examineCategory"/>
        </template>
      </el-table-column>
      <el-table-column label="考核对象" align="center" prop="deptId" width="400px" />
      <el-table-column label="调整系数" align="center" prop="adjustCoefficient" />
      <el-table-column label="调整系数计算方式" align="center" prop="adjustWay"/>
      <el-table-column label="状态" align="center" prop="status" />
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
@@ -122,22 +120,24 @@
          <el-input v-model="form.templateName" placeholder="请输入模板名称" />
        </el-form-item>
        <el-form-item label="考核类型" prop="examineCategory">
          <el-select v-model="form.examineCategory"  placeholder="请选择考核类型">
            <el-option label="省厅考核" value="省厅考核"/>
            <el-option label="区县考核" value="区县考核"/>
            <el-option label="运维考核" value="公司考核"/>
          <el-select v-model="form.examineCategory" placeholder="考核类型">
            <el-option
              v-for="dict in dict.type.platform_examine_category"
              :key="dict.value"
              :label="dict.label"
              :value="parseInt(dict.value)"
            />
          </el-select>
        </el-form-item>
        <el-form-item label="考核对象" prop="unitName">
          <div class="block">
            <span class="demonstration"></span>
            <el-cascader
              v-model="value"
              :options="options"
              :props = "props"
              @change="handleChange"></el-cascader>
          </div>
        <el-form-item label="考核对象" prop="deptId">
          <el-select v-model="form.deptId" multiple placeholder="请选择">
            <el-option
              v-for="item in areaList"
              :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">
@@ -201,52 +201,16 @@
<script>
import { listCheckTemplate, getCheckTemplate, delCheckTemplate, addCheckTemplate, updateCheckTemplate } from "@/api/platform/check-template";
// import { ruleSelect } from '@/api/platform/check-rule'
import { unitSelect } from '@/api/platform/unit'
 import { areaSelect } from '@/api/system/dept'
export default {
  name: "CheckTemplate",
  dicts: ['platform_audit_state','platform_examine_category','platform_rule_category'],
  data() {
    return {
      props: { multiple: true },
      value: [],
      options: [{
        value: 'city',
        label: '区县',
        children: [{
          value: 'fushun',
          label: '富顺县',
        }, {
          value: 'rong',
          label: '荣县',
        },{
          value: 'gaoxin',
          label: '高新区',
        },{
          value: 'ziliujing',
          label: '自流井区',
        },{
          value: 'gongjing',
          label: '贡井区',
        },{
          value: 'daan',
          label: '大安区',
        },{
          value: 'yantan',
          label: '沿滩区',
        },
        ]
      }, {
        value: 'company',
        label: '公司',
        children: [{
          value: 'yunwei',
          label: '成都x运维',
        }, {
          value: 'yunwei2',
          label: '自贡x运维',
        }, ]
      },
      ],
      areaList:[],
      ruleList: [],
      unitList: [],
      // 临时规则表单
@@ -300,8 +264,11 @@
  },
  created() {
    this.getList();
    this.areaSelect();
    this.selectCheckRule();
    this.selectUnit();
    if (typeof this.form.deptId === 'string' && this.form.deptId.length > 0) {
      this.form.deptId = this.form.deptId.split(',').map(Number); // 假设deptId的值是以逗号分隔的数字字符串
    }
  },
  methods: {
    handleChange(value) {
@@ -329,9 +296,9 @@
      })
    },
    // 运维公司下拉数据
    selectUnit() {
      unitSelect().then(res => {
        this.unitList = res.data;
    areaSelect() {
      areaSelect().then(res => {
        this.areaList = res.data;
      })
    },
    /** 查询考核模板列表 */
@@ -342,7 +309,7 @@
        this.queryParams["end"] = this.daterangeCreateTime[1];
      }
      listCheckTemplate(this.queryParams).then(response => {
        this.checkTemplateList = response.data;
        this.checkTemplateList = response.rows;
        this.total = response.total;
        this.loading = false;
      });