src/views/system/check/result/detail/detail.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/system/data-manage/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/system/score/province/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/system/work-order/threshold/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/system/check/result/detail/detail.vue
@@ -1,26 +1,72 @@ <template> <div class="app-container"> <el-container> <el-main> <h2>考核规则</h2> <el-table v-loading="loading" :data="checkRuleList" @selection-change="handleSelectionChange"> <el-table-column type="selection" width="55" align="center"/> <el-table-column label="规则名称" align="center" prop="checkRuleName"/> <el-table-column label="规则权重" align="center" prop="weight"/> <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-row :gutter="20"> <el-col :xl="3" :lg="3" :md="6" :sm="6" :xs="12" v-for="(item, index) in checkRuleList" :key="index" :style="item.name == '' ? 'display:none' : ''" class="col-margin" > <el-card style=" min-width: 150px; width: 100%; height: 150px; text-align: center; margin-bottom: 20px; " > <div style="display: flex; flex-direction: row-reverse"> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleRuleUpdate(item)" >修改 </el-button> </div> <div style="font-size: 14px;height: 50px; font-weight: bold;">{{ item.checkRuleName }}</div> <div style="font-size: 14px;">规则权重:{{ item.weight }}</div> </el-card> </el-col> </el-row> <!-- <div></div> <el-table v-loading="loading" :data="checkRuleList" @selection-change="handleSelectionChange" > <el-table-column type="selection" width="55" align="center" /> <el-table-column label="规则名称" align="center" prop="checkRuleName" /> <el-table-column label="规则权重" align="center" prop="weight" /> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" > <template slot-scope="scope"> <el-button size="mini" type="text" icon="el-icon-edit" @click="handleRuleUpdate(scope.row)" >修改 >修改 </el-button> </template> </el-table-column> </el-table> </el-table> --> </el-main> </el-container> @@ -35,29 +81,62 @@ icon="el-icon-download" size="mini" @click="handleExport" >导出 >导出 </el-button> </el-col> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" > <el-form-item label="考核日期" prop="name"> <el-date-picker v-model="date" format="yyyy-MM" value-format="yyyy-MM" type="month" placeholder="选择日期" @change="dateChange"> <el-date-picker v-model="date" format="yyyy-MM" value-format="yyyy-MM" type="month" placeholder="选择日期" @change="dateChange" > </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 type="primary" icon="el-icon-search" size="mini" @click="handleQuery" >搜索</el-button > </el-form-item> </el-form> </el-row> <el-table v-loading="loading" :data="dataMap" @selection-change="handleSelectionChange"> <el-table-column label="考核日期" align="center" prop="create_time" width="120px" fixed> <el-table v-loading="loading" :data="dataMap" @selection-change="handleSelectionChange" > <el-table-column label="考核日期" align="center" prop="create_time" width="120px" fixed > <template slot-scope="scope"> <span>{{ scope.row.create_time.split('T')[0] }}</span> <span>{{ scope.row.create_time.split("T")[0] }}</span> </template> </el-table-column> <el-table-column label="考核对象" align="center" prop="dept_id" width="120px" fixed> <el-table-column label="考核对象" align="center" prop="dept_id" width="120px" fixed > <template slot-scope="scope"> <span>{{ translateDeptId(scope.row.dept_id) }}</span> </template> @@ -89,13 +168,27 @@ </el-container> <!-- 修改考核权重对话框 --> <el-dialog :title="title" :visible.sync="ruleOpen" width="600px" append-to-body> <el-dialog :title="title" :visible.sync="ruleOpen" width="600px" append-to-body > <el-form ref="form" :model="ruleForm" :rules="rules" label-width="80px"> <el-form-item label="规则名称" prop="checkRuleName"> <el-input v-model="ruleForm.checkRuleName" placeholder="请输入规则名称" disabled/> <el-input v-model="ruleForm.checkRuleName" placeholder="请输入规则名称" disabled /> </el-form-item> <el-form-item label="规则权重" prop="weight"> <el-input-number v-model="ruleForm.weight" :precision="1" :step="0.1" placeholder="请输入规则权重"/> <el-input-number v-model="ruleForm.weight" :precision="1" :step="0.1" placeholder="请输入规则权重" /> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> @@ -105,7 +198,12 @@ </el-dialog> <!-- 修改考核指标对话框 --> <el-dialog :title="title" :visible.sync="indexOpen" width="600px" append-to-body> <el-dialog :title="title" :visible.sync="indexOpen" width="600px" append-to-body > <el-form ref="form" :model="indexForm" :rules="rules" label-width="150px"> <el-form-item label="考核日期" prop="create_time"> <el-input v-model="formattedCreateTime" placeholder="" disabled> @@ -113,7 +211,12 @@ </el-form-item> <div v-for="item in tableData" :key="item.ruleIndex"> <el-form-item :label="item.ruleName" :prop="item.ruleIndex"> <el-input-number v-model="indexForm[item.ruleIndex]" :precision="4" :step="0.1" placeholder="请输入指标"></el-input-number> <el-input-number v-model="indexForm[item.ruleIndex]" :precision="4" :step="0.1" placeholder="请输入指标" ></el-input-number> </el-form-item> </div> </el-form> @@ -126,19 +229,24 @@ </template> <script> import {listScore, getScoreIndex, delScore, addScore, updateScore} from "@/api/platform/check-score"; import {updateWeight} from "@/api/platform/check-template"; import {areaSelect} from '@/api/system/dept' import { listScore, getScoreIndex, delScore, addScore, updateScore, } from "@/api/platform/check-score"; import { updateWeight } from "@/api/platform/check-template"; import { areaSelect } from "@/api/system/dept"; export default { name: "CheckResult", dicts: ['platform_audit_state'], dicts: ["platform_audit_state"], data() { return { id: null, examineCategory: null, date: '', date: "", examineTag: null, deptId: null, areaList: [], @@ -146,7 +254,7 @@ dataMap: [], manualScoreOpen: false, manualScoreForm: {}, manualScoreTitle: '', manualScoreTitle: "", // 遮罩层 loading: true, // 选中数组 @@ -178,19 +286,21 @@ date: null, }, // 表单校验 rules: {} rules: {}, }; }, computed: { formattedCreateTime() { // 如果 create_time 存在,则返回日期部分,否则返回空字符串 return this.indexForm.create_time ? this.indexForm.create_time.split('T')[0] : ''; return this.indexForm.create_time ? this.indexForm.create_time.split("T")[0] : ""; }, }, created() { //考核成绩详情跳转参数接收 if (this.$route.query.id) { this.queryParams.id = this.$route.query.id this.queryParams.id = this.$route.query.id; } // 考核积分列表 this.getList(); @@ -200,10 +310,10 @@ /** 查询考核计分列表 */ getList() { this.loading = true; getScoreIndex(this.queryParams).then(response => { getScoreIndex(this.queryParams).then((response) => { this.checkRuleList = response.data.checkRuleList; this.dataMap = response.data.scoreMap.dataMap; this.tableData = response.data.scoreMap.tableData this.tableData = response.data.scoreMap.tableData; this.loading = false; }); }, @@ -224,18 +334,25 @@ this.resetForm(formName); }, translateDeptId(deptId) { const department = this.areaList.find(dept => dept.id == deptId); return department ? department.value : '未知'; const department = this.areaList.find((dept) => dept.id == deptId); return department ? department.value : "未知"; }, // 区域下拉数据 areaSelect() { areaSelect().then(res => { areaSelect().then((res) => { this.areaList = res.data; }) }); }, /** 返回按钮 */ goBack() { const obj = { path: "/check/detail", query: { index: this.$route.query.deptId, examineTag: this.$route.query.examineTag, pageNum: this.$route.query.pageNum } }; const obj = { path: "/check/detail", query: { index: this.$route.query.deptId, examineTag: this.$route.query.examineTag, pageNum: this.$route.query.pageNum, }, }; this.$tab.closeOpenPage(obj); }, // 关闭当前tab页签,打开新页签 @@ -262,9 +379,9 @@ }, // 多选框选中数据 handleSelectionChange(selection) { this.ids = selection.map(item => item.id) this.single = selection.length !== 1 this.multiple = !selection.length this.ids = selection.map((item) => item.id); this.single = selection.length !== 1; this.multiple = !selection.length; }, /** 新增按钮操作 */ handleAdd() { @@ -288,10 +405,10 @@ }, /** 提交按钮 */ submitForm() { this.$refs["form"].validate(valid => { this.$refs["form"].validate((valid) => { if (valid) { if (this.ruleForm.id != null) { updateWeight(this.ruleForm).then(response => { updateWeight(this.ruleForm).then((response) => { this.$modal.msgSuccess("修改成功"); this.ruleOpen = false; this.getList(); @@ -302,21 +419,22 @@ }, /** 导出按钮操作 */ handleExport() { this.download('/check/score/export', { ...this.queryParams }, `考核指标_${new Date().getTime()}.xlsx`) this.download( "/check/score/export", { ...this.queryParams, }, `考核指标_${new Date().getTime()}.xlsx` ); }, handleSelect(key, keyPath) { console.log(key, keyPath); }, } }, }; </script> <style scoped> .header-container h2 { margin-right: 10px; /* 根据需要调整标题和菜单之间的间距 */ } </style> src/views/system/data-manage/index.vue
@@ -14,7 +14,6 @@ </h3> </el-col> </el-row> <el-row :gutter="20"> <el-col :xl="4" src/views/system/score/province/index.vue
@@ -76,7 +76,7 @@ </template> </el-table-column> <el-table-column label="分值" align="center" prop="score" /> <el-table-column label="考核规则" align="center" prop="ruleCategory"> <el-table-column label="" align="center" prop="ruleCategory"> <template slot-scope="scope"> <div v-if="scope.row.ruleCategory == 1">视频在线率</div> <div v-else-if="scope.row.ruleCategory == 2">存储故障</div> src/views/system/work-order/threshold/index.vue
@@ -14,8 +14,8 @@ <!-- </el-col>--> <!-- </el-row>--> <el-row> <el-col :span="8"> <el-card style="margin-bottom: 20px; height: 340px; margin-right: 20px"> <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8"> <el-card style="margin-bottom: 20px; height: 450px; margin-right: 20px"> <div style="display: flex; justify-content: space-between"> <div class="header—text">视频</div> <div> @@ -37,14 +37,22 @@ style=" margin: 20px; display: flex; width: 350px; width: 400px; justify-content: space-between; " > <div> <span style="font-size: small">工单阈值</span> <div style=" font-size: small; display: flex; flex-direction: row-reverse; width: 172px; " >工单阈值</div > <div> <el-form label-width="100px"> <el-form label-width="120px"> <el-form-item label="模糊分值:"> <el-input v-model="videoList.blur" @@ -52,9 +60,7 @@ style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].blur }}</span> <span v-else>{{ thresholdList[0].blur }}</span> </el-form-item> <el-form-item label="颜色分值:"> <el-input @@ -63,9 +69,7 @@ style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].color }}</span> <span v-else>{{ thresholdList[0].color }}</span> </el-form-item> <el-form-item label="亮度分值:"> <el-input @@ -74,9 +78,7 @@ style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].light }}</span> <span v-else>{{ thresholdList[0].light }}</span> </el-form-item> <el-form-item label="遮挡分值:"> <el-input @@ -85,9 +87,7 @@ style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].shade }}</span> <span v-else>{{ thresholdList[0].shade }}</span> </el-form-item> <el-form-item label="雪花分值:"> <el-input @@ -96,9 +96,7 @@ style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].snow }}</span> <span v-else>{{ thresholdList[0].snow }}</span> </el-form-item> <el-form-item label="条纹分值:"> <el-input @@ -107,9 +105,7 @@ style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].stripe }}</span> <span v-else>{{ thresholdList[0].stripe }}</span> </el-form-item> <el-form-item label="无信号分值:"> <el-input @@ -118,9 +114,7 @@ style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].signal }}</span> <span v-else>{{ thresholdList[0].signal }}</span> </el-form-item> <el-form-item label="标注时间差(秒):"> <el-input @@ -129,9 +123,7 @@ style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].diffTime }}</span> <span v-else>{{ thresholdList[0].diffTime }}</span> </el-form-item> </el-form> </div> @@ -139,98 +131,78 @@ <div> <span style="font-size: small">下发阈值</span> <div> <el-form ref="form" :model="thresholdList[0]" label-width="100px" > <el-form-item label="模糊分值:"> <el-form ref="form" :model="thresholdList[0]"> <el-form-item label=""> <el-input v-model="videoList.blur" size="mini" style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].blur }}</span> <span v-else>{{ thresholdList[0].blur }}</span> </el-form-item> <el-form-item label="颜色分值:"> <el-form-item label=""> <el-input v-model="videoList.color" size="mini" style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].color }}</span> <span v-else>{{ thresholdList[0].color }}</span> </el-form-item> <el-form-item label="亮度分值:"> <el-form-item label=""> <el-input v-model="videoList.light" size="mini" style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].light }}</span> <span v-else>{{ thresholdList[0].light }}</span> </el-form-item> <el-form-item label="遮挡分值:"> <el-form-item label=""> <el-input v-model="videoList.shade" size="mini" style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].shade }}</span> <span v-else>{{ thresholdList[0].shade }}</span> </el-form-item> <el-form-item label="雪花分值:"> <el-form-item label=""> <el-input v-model="videoList.snow" size="mini" style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].snow }}</span> <span v-else>{{ thresholdList[0].snow }}</span> </el-form-item> <el-form-item label="条纹分值:"> <el-form-item label=""> <el-input v-model="videoList.stripe" size="mini" style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].stripe }}</span> <span v-else>{{ thresholdList[0].stripe }}</span> </el-form-item> <el-form-item label="无信号分值:"> <el-form-item label=""> <el-input v-model="videoList.signal" size="mini" style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].signal }}</span> <span v-else>{{ thresholdList[0].signal }}</span> </el-form-item> <el-form-item label="标注时间差(秒):"> <el-form-item label=""> <el-input v-model="videoList.difftime" size="mini" style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[0].difftime }}</span> <span v-else>{{ thresholdList[0].difftime }}</span> </el-form-item> </el-form> </div> @@ -238,8 +210,8 @@ </div> </el-card> </el-col> <el-col :span="8"> <el-card style="margin-bottom: 20px; height: 340px; margin-right: 20px"> <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8"> <el-card style="margin-bottom: 20px; height: 450px; margin-right: 20px"> <div style="display: flex; justify-content: space-between"> <div class="header—text">人脸</div> <div> @@ -252,7 +224,7 @@ v-if="!ifEdit" >修改 </el-button> <el-button size="mini" type="primary" @click="a()" v-if="ifEdit" <el-button size="mini" type="primary" @click="b()" v-if="ifEdit" >保存 </el-button> </div> @@ -261,14 +233,22 @@ style=" margin: 20px; display: flex; width: 350px; width: 400px; justify-content: space-between; " > <div> <span style="font-size: small">工单阈值</span> <div style=" font-size: small; display: flex; flex-direction: row-reverse; width: 190px; " >工单阈值</div > <div> <el-form label-width="100px"> <el-form label-width="140px"> <el-form-item label="时钟准确率:"> <el-input v-model="faceList.clockPercent" @@ -312,7 +292,9 @@ style="width: 100px" v-if="ifEdit" ></el-input> <span v-else>{{ thresholdList[1].lowScorePercent }}</span></el-form-item <span v-else>{{ thresholdList[1].lowScorePercent }}</span></el-form-item > <el-form-item label="持续无数据天数:"> <el-input @@ -332,9 +314,8 @@ <el-form ref="form" :model="thresholdList[0]" label-width="100px" > <el-form-item label="时钟准确率:"> <el-form-item label=""> <el-input v-model="thresholdList[1].clockPercent" size="mini" @@ -345,7 +326,7 @@ thresholdList[1].clockPercent }}</span></el-form-item > <el-form-item label="数据及时率:"> <el-form-item label=""> <el-input v-model="thresholdList[0].timelyPercent" size="mini" @@ -354,7 +335,7 @@ ></el-input> <span v-else>{{ 10 }}</span></el-form-item > <el-form-item label="不唯一数据量:"> <el-form-item label=""> <el-input v-model="thresholdList[0].nouniqueCount" size="mini" @@ -363,7 +344,7 @@ ></el-input> <span v-else>{{ 10 }}</span></el-form-item > <el-form-item label="建模失败率:"> <el-form-item label=""> <el-input v-model="thresholdList[0].failPercent" size="mini" @@ -372,7 +353,7 @@ ></el-input> <span v-else>{{ 10 }}</span></el-form-item > <el-form-item label="平均人脸低评分率:"> <el-form-item label=""> <el-input v-model="thresholdList[0].lowScorePercent" size="mini" @@ -381,7 +362,7 @@ ></el-input> <span v-else>{{ 10 }}</span></el-form-item > <el-form-item label="持续无数据天数:"> <el-form-item label=""> <el-input v-model="thresholdList[0].continueNoDataCount" size="mini" @@ -396,8 +377,8 @@ </div> </el-card></el-col > <el-col :span="8"> <el-card style="margin-bottom: 20px; height: 340px; margin-right: 20px"> <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="8"> <el-card style="margin-bottom: 20px; height: 450px; margin-right: 20px"> <div style="display: flex; justify-content: space-between"> <div class="header—text">车辆</div> <div> @@ -419,17 +400,25 @@ style=" margin: 20px; display: flex; width: 350px; width: 400px; justify-content: space-between; " > <div> <span style="font-size: small">工单阈值</span> <div style=" font-size: small; display: flex; flex-direction: row-reverse; width: 232px; " >工单阈值</div > <div> <el-form ref="form" :model="thresholdList[0]" label-width="120px" label-width="180px" > <el-form-item label="时钟准确率:"> <el-input @@ -494,9 +483,8 @@ <el-form ref="form" :model="thresholdList[0]" label-width="120px" > <el-form-item label="时钟准确率:"> <el-form-item label=""> <el-input v-model="thresholdList[0].clockPercent" size="mini" @@ -505,7 +493,7 @@ ></el-input> <span v-else>{{ 10 }}</span> </el-form-item> <el-form-item label="数据及时率:"> <el-form-item label=""> <el-input v-model="thresholdList[0].timelyPercent" size="mini" @@ -514,7 +502,7 @@ ></el-input> <span v-else>{{ 10 }}</span> </el-form-item> <el-form-item label="不唯一数据量:"> <el-form-item label=""> <el-input v-model="thresholdList[0].nouniqueCount" size="mini" @@ -523,7 +511,7 @@ ></el-input> <span v-else>{{ 10 }}</span> </el-form-item> <el-form-item label="车牌未识别量:"> <el-form-item label=""> <el-input v-model="thresholdList[0].dayNoNumberCount" size="mini" @@ -532,7 +520,7 @@ ></el-input> <span v-else>{{ 10 }}</span> </el-form-item> <el-form-item label="车辆六项属性不完整量:"> <el-form-item label=""> <el-input v-model="thresholdList[0].noIntegrityCount" size="mini" @@ -541,7 +529,7 @@ ></el-input> <span v-else>{{ 10 }}</span> </el-form-item> <el-form-item label="持续无数据天数:"> <el-form-item label=""> <el-input v-model="thresholdList[0].continueNoDataCount" size="mini" @@ -1216,6 +1204,10 @@ methods: { a() { this.ifEdit = true; }, b(){ console.log(1111111); this.ifEdit = false; console.log(this.ifEdit); }, showContent(row) { @@ -1272,7 +1264,7 @@ this.loading = true; listThreshold(this.queryParams).then((response) => { this.thresholdList = response.rows; this.videoList = thresholdList[0]; this.videoList = this.thresholdList[0]; this.total = response.total; this.loading = false; });