Merge branch 'master' into dev-threejs
7个文件已修改
18 文件已重命名
12个文件已删除
| | |
| | | } |
| | | |
| | | // 查询考核积分明细详细 |
| | | export function getScoreIndex(id) { |
| | | export function getScoreIndex(query) { |
| | | return request({ |
| | | url: '/check/score/detail/' + id, |
| | | method: 'get' |
| | | url: '/check/score/detail/index', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // 修改考核模板权重 |
| | | export function updateWeight(data) { |
| | | return request({ |
| | | url: '/check/template/weight', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | } |
| | | // 删除考核模板 |
| | | export function delCheckTemplate(id) { |
| | | return request({ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 查询合同考核结果列表 |
| | | export function listResult(query) { |
| | | // 查询考核结果列表 |
| | | export function listCheckResult(query) { |
| | | return request({ |
| | | url: '/contract/result/list', |
| | | method: 'get', |
| | | params: query |
| | | url: '/contract/result/list?pageNum=' + query.pageNum + '&pageSize=' + query.pageSize, |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | // 查询合同考核结果详细 |
| | | export function getResult(id) { |
| | | // 查询考核结果详情 |
| | | export function resultRecord(id) { |
| | | return request({ |
| | | url: '/contract/result/record/list?resultId=' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 查询考核结果详细 |
| | | export function getCheckResult(id) { |
| | | return request({ |
| | | url: '/contract/result/' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 新增合同考核结果 |
| | | export function addResult(data) { |
| | | // 新增考核结果 |
| | | export function addCheckResult(data) { |
| | | return request({ |
| | | url: '/contract/result', |
| | | method: 'post', |
| | |
| | | }) |
| | | } |
| | | |
| | | // 修改合同考核结果 |
| | | export function updateResult(data) { |
| | | // 修改考核结果 |
| | | export function updateCheckResult(data) { |
| | | return request({ |
| | | url: '/contract/result', |
| | | method: 'put', |
| | |
| | | }) |
| | | } |
| | | |
| | | // 删除合同考核结果 |
| | | export function delResult(id) { |
| | | // 删除考核结果 |
| | | export function delCheckResult(id) { |
| | | return request({ |
| | | url: '/contract/result/' + id, |
| | | method: 'delete' |
| | | }) |
| | | } |
| | | |
| | | // 发布考核结果 |
| | | export function publishCheckResult(id) { |
| | | return request({ |
| | | url: '/contract/result/publish/' + id, |
| | | method: 'put' |
| | | }) |
| | | } |
| | | |
| | | // 提交人工分数 |
| | | export function manualScore(data) { |
| | | return request({ |
| | | url: '/contract/result/manual-score', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | |
| | | hidden: true |
| | | }, |
| | | { |
| | | path: '/car/vehicle-data-monitor', |
| | | component: Layout, |
| | | hidden: true, |
| | | children: [ |
| | | { |
| | | path: 'index', |
| | | name: 'vehicle-data-monitor', |
| | | component: () => import('@/views/system/vehicle-data-monitor/index'), |
| | | meta: { title: '车辆过卡口数据一致性', activeMenu: '/system/vehicle-data-monitor' } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/car/equipment', |
| | | component: Layout, |
| | | hidden: true, |
| | | children: [ |
| | | { |
| | | path: 'index', |
| | | name: 'equipment', |
| | | component: () => import('@/views/system/equipment/index'), |
| | | meta: { title: '资产管理', activeMenu: '/system/equipment' } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/check-result/contract', |
| | | component: Layout, |
| | | hidden: true, |
| | | children: [ |
| | | { |
| | | path: 'detail', |
| | | name: 'check-result-contract', |
| | | component: () => import('@/views/system/result/default/detail'), |
| | | meta: { title: '合同结果详情', activeMenu: '/system/check-result/contract' } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/check-result/city', |
| | | component: Layout, |
| | | hidden: true, |
| | | children: [ |
| | | |
| | | ] |
| | | }, |
| | | { |
| | | path: '/check-result/province', |
| | | component: Layout, |
| | | hidden: true, |
| | | children: [ |
| | | |
| | | ] |
| | | }, |
| | | { |
| | | path: '/register', |
| | | component: () => import('@/views/register'), |
| | | hidden: true |
File was renamed from src/views/system/result/detail/detail.vue |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-page-header @back="goBack" content="详情页面"> |
| | | <el-page-header @back="goBack()" content="详情页面"> |
| | | </el-page-header> |
| | | |
| | | <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 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 |
| | |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleRuleUpdate(scope.row)" |
| | | >修改</el-button> |
| | | >修改 |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getRuleList" |
| | | /> |
| | | </el-main> |
| | | </el-container> |
| | | |
| | | <el-container> |
| | | <el-main> |
| | | <h2>考核成绩</h2> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-row :gutter="10" class="mb5"> |
| | | <el-col :span="1.5" style="margin-right: 20px"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | >导出</el-button> |
| | | >导出 |
| | | </el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getRuleList"></right-toolbar> |
| | | <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> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <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 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> |
| | |
| | | :key="item.ruleName" |
| | | :label="item.ruleName" |
| | | align="center" |
| | | width = "120px" |
| | | width="180px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row[item.ruleIndex] }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleIndexUpdate(scope.row,scope.index)" |
| | | >修改</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">--> |
| | | <!-- <template slot-scope="scope">--> |
| | | <!-- <el-button--> |
| | | <!-- size="mini"--> |
| | | <!-- type="text"--> |
| | | <!-- icon="el-icon-edit"--> |
| | | <!-- @click="handleIndexUpdate(scope.row,scope.index)"--> |
| | | <!-- >修改</el-button>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column>--> |
| | | </el-table> |
| | | </el-main> |
| | | </el-container> |
| | |
| | | <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" 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"> |
| | |
| | | <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="ruleForm.create_time" placeholder="请输入规则名称" disabled> |
| | | |
| | | <el-input v-model="formattedCreateTime" placeholder="" disabled> |
| | | </el-input> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="考核对象" prop="checkRuleName">--> |
| | | <!-- <el-input v-model="ruleForm.checkRuleName" placeholder="请输入规则名称" disabled/>--> |
| | | <!-- </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" 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> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { listCheckResult, getCheckResult, delCheckResult, addCheckResult, updateCheckResult,manualScore, publishCheckResult } from "@/api/platform/check-result"; |
| | | import { listScore, getScoreIndex, delScore, addScore, updateScore } from "@/api/platform/check-score"; |
| | | 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", |
| | |
| | | data() { |
| | | return { |
| | | id: null, |
| | | examineCategory: null, |
| | | date: '', |
| | | examineTag: null, |
| | | deptId: null, |
| | | areaList:[], |
| | | areaList: [], |
| | | tableData: [], |
| | | dataMap: [], |
| | | manualScoreOpen: false, |
| | |
| | | //请求参数 |
| | | queryParams: { |
| | | id: null, |
| | | date: null, |
| | | }, |
| | | // 表单校验 |
| | | rules: {} |
| | | }; |
| | | }, |
| | | computed: { |
| | | formattedCreateTime() { |
| | | // 如果 create_time 存在,则返回日期部分,否则返回空字符串 |
| | | return this.indexForm.create_time ? this.indexForm.create_time.split('T')[0] : ''; |
| | | }, |
| | | }, |
| | | created() { |
| | | //考核成绩详情跳转参数接收 |
| | | if(this.$route.query.id){ |
| | | this.id = this.$route.query.id |
| | | if (this.$route.query.id) { |
| | | this.queryParams.id = this.$route.query.id |
| | | } |
| | | // 考核积分列表 |
| | | this.getList(); |
| | |
| | | /** 查询考核计分列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | getScoreIndex(this.id).then(response => { |
| | | getScoreIndex(this.queryParams).then(response => { |
| | | this.checkRuleList = response.data.checkRuleList; |
| | | this.dataMap = response.data.scoreMap.dataMap; |
| | | this.tableData = response.data.scoreMap.tableData |
| | |
| | | checkRuleName: null, |
| | | weight: null, |
| | | }; |
| | | this.indexForm = { |
| | | }; |
| | | this.indexForm = {}; |
| | | this.resetForm(formName); |
| | | }, |
| | | translateDeptId(deptId) { |
| | |
| | | this.areaList = res.data; |
| | | }) |
| | | }, |
| | | cancelManualScore() { |
| | | this.manualScoreForm = {}; |
| | | this.manualScoreTitle = ""; |
| | | this.manualScoreOpen = false; |
| | | /** 返回按钮 */ |
| | | goBack() { |
| | | const obj = { path: "/examine/detail", query: { index: this.$route.query.deptId, examineTag: this.$route.query.examineTag, pageNum: this.$route.query.pageNum } }; |
| | | this.$tab.closeOpenPage(obj); |
| | | }, |
| | | submitManualScore() { |
| | | if (! this.manualScoreForm.manualScore) { |
| | | this.$modal.msgWarning("请填写分数"); |
| | | return |
| | | // 关闭当前tab页签,打开新页签 |
| | | closeOpenPage(obj) { |
| | | store.dispatch("tagsView/delView", router.currentRoute); |
| | | if (obj !== undefined) { |
| | | return router.push(obj); |
| | | } |
| | | manualScore(this.manualScoreForm).then(res => { |
| | | this.$modal.msgSuccess("操作成功"); |
| | | this.cancelManualScore(); |
| | | this.getList(); |
| | | }) |
| | | }, |
| | | handleSetManualScore(row) { |
| | | this.manualScoreForm.id = row.id; |
| | | this.manualScoreForm.manualScore = parseInt(row.manualScore); |
| | | this.manualScoreTitle = row.checkUnitName + '人工打分' |
| | | this.manualScoreOpen = true; |
| | | dateChange() { |
| | | this.queryParams.date = this.date; |
| | | console.log(this.queryParams); |
| | | this.getList(); |
| | | }, |
| | | |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.getList(); |
| | |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.single = selection.length!==1 |
| | | this.single = selection.length !== 1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | /** 新增按钮操作 */ |
| | |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | if (this.form.id != null) { |
| | | updateCheckResult(this.form).then(response => { |
| | | if (this.ruleForm.id != null) { |
| | | updateWeight(this.ruleForm).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addCheckResult(this.form).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.ruleOpen = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const ids = row.id || this.ids; |
| | | this.$modal.confirm('是否确认删除考核结果编号为"' + ids + '"的数据项?').then(function() { |
| | | return delCheckResult(ids); |
| | | }).then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }).catch(() => {}); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download('system/checkResult/export', { |
| | | this.download('/check/score/export', { |
| | | ...this.queryParams |
| | | }, `checkResult_${new Date().getTime()}.xlsx`) |
| | | }, `考核指标_${new Date().getTime()}.xlsx`) |
| | | }, |
| | | handleSelect(key, keyPath) { |
| | | console.log(key, keyPath); |
| | |
| | | </script> |
| | | <style scoped> |
| | | |
| | | .line { |
| | | display: flex; |
| | | flex-direction: row; |
| | | justify-content: flex-start; |
| | | align-items: center; |
| | | } |
| | | |
| | | .line-right { |
| | | width: 50px; |
| | | } |
| | | .input{ |
| | | width: 200px; |
| | | } |
| | | |
| | | .input-w { |
| | | margin-left: 5px; |
| | | width: 70px; |
| | | } |
| | | .row-warp { |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | text-align: center; |
| | | border: solid 1px gray; |
| | | /*padding: 3px;*/ |
| | | } |
| | | .row { |
| | | display: flex; |
| | | flex-direction: row; |
| | | justify-content: center; |
| | | align-items: center; |
| | | border-bottom: solid 1px gray; |
| | | padding: 3px; |
| | | } |
| | | .row:last-of-type { |
| | | border-bottom: none; |
| | | } |
| | | .row-left { |
| | | flex: 2; |
| | | border-right: solid 1px gray; |
| | | } |
| | | .row-right { |
| | | flex: 4; |
| | | display: flex; |
| | | flex-direction: row; |
| | | justify-content: center; |
| | | } |
| | | .header-container { |
| | | display: flex; |
| | | align-items: center; /* 垂直居中 */ |
| | | } |
| | | |
| | | .header-container h2 { |
| | | margin-right: 10px; /* 根据需要调整标题和菜单之间的间距 */ |
File was renamed from src/views/system/result/detail/index1.vue |
| | |
| | | <el-table-column label="分数" prop="score" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="状态" prop="publish" align="center"> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="small" type="text" v-show="scope.row.publish != 1">确认发布</el-button> |
| | | <el-button size="small" type="text" v-show="scope.row.publish == 1">取消发布</el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-view" @click="handleDetail(scope.row.id)">详细</el-button> |
| | | <dict-tag :options="dict.type.platform_is_publish" :value="scope.row.publish" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center"> |
| | | <template slot-scope="scope"> |
| | | <div style="display: flex;justify-content: center;"> |
| | | <el-button size="small" type="text" @click="handlePublish(scope.row)" v-if="scope.row.publish === 'UNPUBLISHED'" >确认发布</el-button> |
| | | <el-button size="small" type="text" @click="handlePublish(scope.row)" v-if="scope.row.publish === 'PUBLISHED'">取消发布</el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-view" |
| | | @click="handleDetail(scope.row.id)" |
| | | >详细</el-button> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" /> |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParamsList.pageNum" |
| | | :limit.sync="queryParamsList.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | |
| | | </div> |
| | | |
| | |
| | | let observer = null; |
| | | export default { |
| | | name: 'index', |
| | | dicts: ['platform_examine_use', 'platform_examine_category'], |
| | | dicts: ['platform_examine_category','platform_is_publish'], |
| | | data() { |
| | | return { |
| | | activeIndex: '0', |
| | | areaList: [], |
| | | province: { |
| | | id: [], |
| | | publish: null, |
| | | }, |
| | | date: '', |
| | | dateRange: '', |
| | | // 总条数 |
| | |
| | | deptId: null, |
| | | examineTag: 0 |
| | | }, |
| | | queryParamsList: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | deptId: null, |
| | | examineTag:0 |
| | | }, |
| | | tableData: [], |
| | | loading: false, |
| | | tableLoading: false, |
| | | loading: false, |
| | | searchForm: { |
| | | time: null, |
| | | } |
| | |
| | | console.log(this.$route.query.index) |
| | | if (this.$route.query.index) { |
| | | this.queryParams.deptId = this.$route.query.index |
| | | this.queryParamsList.deptId = this.$route.query.index |
| | | } |
| | | const date = new Date(); |
| | | const year = date.getFullYear(); |
| | | const month = (date.getMonth() + 1) >= 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1); |
| | | this.date = year + '-' + month; |
| | | this.queryParams.date = this.date; |
| | | this.queryParams.examineTag =this.$route.query.examineTag; |
| | | this.queryParamsList.examineTag =this.$route.query.examineTag; |
| | | this.activeIndex = this.$route.query.examineTag; |
| | | this.areaSelect(); |
| | | this.getList(this.$route.query.index); |
| | | }, |
| | |
| | | |
| | | }, |
| | | methods: { |
| | | //发布 |
| | | handlePublish(row) { |
| | | const getExamineCategoryText = category => { |
| | | switch (category) { |
| | | case 1: return '视频考核'; |
| | | case 2: return '车辆考核'; |
| | | case 3: return '人脸考核'; |
| | | default: return '未知'; |
| | | } |
| | | }; |
| | | |
| | | const year = row.createTime.substr(0, 4); |
| | | const month = (parseInt(row.createTime.substr(5, 2), 10)).toString(); |
| | | const day = (parseInt(row.createTime.substr(8, 2), 10)).toString(); |
| | | const formattedCreateTime = year + '年' + month + '月' + day + '日'; |
| | | |
| | | let text = row.publish === 'UNPUBLISHED' ? '发布' : '取消发布'; |
| | | this.province.id = [row.id] |
| | | this.province.publish = text === "发布" ? "PUBLISHED" : "UNPUBLISHED"; |
| | | this.$modal.confirm('确认要' + text + "" + getExamineCategoryText(row.examineCategory) + "" + formattedCreateTime + '的考核成绩吗?') |
| | | .then(() => { |
| | | return publishScore(this.province); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess(text + "成功"); |
| | | }) |
| | | .catch(() => { |
| | | // 错误处理逻辑 |
| | | }); |
| | | }, |
| | | // 区域下拉数据 |
| | | areaSelect() { |
| | | areaSelect().then(res => { |
| | |
| | | handleSelect(key) { |
| | | this.activeIndex = key; |
| | | this.queryParams.examineTag = key; |
| | | this.queryParamsList.examineTag = key; |
| | | this.getChart(this.queryParams.deptId); |
| | | this.getList(this.queryParams.deptId); |
| | | this.getList(this.queryParamsList.deptId); |
| | | }, |
| | | /** 查询考核模板列表 */ |
| | | getChart(deptId) { |
| | |
| | | /** 查询考核模板列表 */ |
| | | getList() { |
| | | this.tableLoading = true; |
| | | detailScore(this.queryParams).then(response => { |
| | | detailScore(this.queryParamsList).then(response => { |
| | | this.tableData = response.rows; |
| | | this.total = response.total; |
| | | this.tableLoading = false; |
| | |
| | | }, |
| | | handleDetail(id) { |
| | | this.$router.push({ |
| | | path: '/examine/detail/detail', |
| | | path: '/check/detail/detail', |
| | | query: { |
| | | id: id, |
| | | examineTag: this.activeIndex, |
| | | deptId: this.queryParamsList.deptId |
| | | } |
| | | }) |
| | | }, |
| | |
| | | series: [ |
| | | { |
| | | name: '车辆考核', |
| | | data: this.filterData(dataList, 0), |
| | | data: this.filterData(dataList, 2), |
| | | type: 'line', |
| | | itemStyle: { |
| | | color: 'rgba(62, 144, 247, 1)' |
| | |
| | | }, |
| | | { |
| | | name: '人脸考核', |
| | | data: this.filterData(dataList, 1), |
| | | data: this.filterData(dataList, 3), |
| | | type: 'line', |
| | | itemStyle: { |
| | | color: 'rgba(85, 192, 191, 1)' |
| | |
| | | }, |
| | | { |
| | | name: '视频考核', |
| | | data: this.filterData(dataList, 2), |
| | | data: this.filterData(dataList, 1), |
| | | type: 'line', |
| | | itemStyle: { |
| | | color: 'rgba(255, 165, 0, 1)' |
| | |
| | | }, |
| | | |
| | | getAllDay() { |
| | | // const date = new Date(); |
| | | // const year = date.getFullYear(); |
| | | // const month = (date.getMonth() + 1) >= 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1); |
| | | // this.date = year + '-' + month; |
| | | const currentDate = this.date.split('-'); |
| | | const currentYear = currentDate[0]; |
| | | const currentMonth = currentDate[1]; |
| | |
| | | |
| | | dateChange() { |
| | | this.queryParams.date = this.date; |
| | | console.log(this.queryParams); |
| | | this.getChart(this.queryParams.deptId); |
| | | this.getList(this.queryParams.deptId); |
| | | } |
| | | |
| | | }, |
File was renamed from src/views/system/result/index.vue |
| | |
| | | <div> |
| | | <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect" |
| | | style="margin-bottom: 10px"> |
| | | <el-menu-item index="1">省厅考核</el-menu-item> |
| | | <el-menu-item index="2">市局考核</el-menu-item> |
| | | <el-menu-item index="0">省厅考核</el-menu-item> |
| | | <el-menu-item index="1">市局考核</el-menu-item> |
| | | </el-menu> |
| | | </div> |
| | | |
| | |
| | | <div class="card-content"> |
| | | <div class="title-container"> |
| | | <h1>考核成绩</h1> |
| | | <div class="select-container"> |
| | | <el-date-picker v-model="date" type="date" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="echart-container"> |
| | | <div id="barChart" ref="barChart"></div> |
| | |
| | | </div> |
| | | <div v-for="(score, scoreIndex) in city" :key="scoreIndex"> |
| | | <div class="score-item"> |
| | | <div v-if="score.examineCategory == 0">车辆:</div> |
| | | <div v-else-if="score.examineCategory == 1">人脸:</div> |
| | | <div v-else-if="score.examineCategory == 2">视频:</div> |
| | | <div v-if="score.examineCategory == 2">车辆:</div> |
| | | <div v-else-if="score.examineCategory == 3">人脸:</div> |
| | | <div v-else-if="score.examineCategory == 1">视频:</div> |
| | | <div class="score">{{ score.score }}</div> |
| | | </div> |
| | | </div> |
| | |
| | | }, |
| | | checkScoreList: [], |
| | | areaList: [], |
| | | activeIndex: '1', |
| | | activeIndex2: '2', |
| | | activeIndex: '0', |
| | | date: '', |
| | | company: '', |
| | | dataList: { |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | this.queryParams.examineTag = this.activeIndex |
| | | this.getList(); |
| | | this.areaSelect(); |
| | | }, |
| | |
| | | methods: { |
| | | jumpDetail(index) { |
| | | this.$router.push({ |
| | | path: '/examine/detail', |
| | | path: '/check/detail', |
| | | query: { |
| | | index: index |
| | | index: index, |
| | | examineTag: this.activeIndex |
| | | } |
| | | }) |
| | | }, |
| | |
| | | } |
| | | }); |
| | | const nameArray = mapData.map(item => item.name); |
| | | const data1 = this.filterData(mapData, 0); |
| | | const data2 = this.filterData(mapData, 1); |
| | | const data3 = this.filterData(mapData, 2); |
| | | const data1 = this.filterData(mapData, 1); |
| | | const data2 = this.filterData(mapData, 2); |
| | | const data3 = this.filterData(mapData, 3); |
| | | const option = { |
| | | grid: { |
| | | left: 0, |
| | |
| | | /** 导航切换 */ |
| | | handleSelect(key) { |
| | | this.activeIndex = key; // 更新当前激活的菜单项 |
| | | this.queryParams.examineTag = key; |
| | | this.getList(); |
| | | }, |
| | | /** 查询考核成绩列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | if (this.activeIndex === '1') { |
| | | this.queryParams.examineTag = '0'; // 省厅考核 |
| | | } else if (this.activeIndex === '2') { |
| | | this.queryParams.examineTag = '1'; // 区域考核 |
| | | } |
| | | // 获取当前日期 |
| | | const today = new Date(); |
| | | |
| | |
| | | const cityName = this.translateDeptId(parseInt(city[0].deptId)); |
| | | this.province.publish = text === "发布" ? "PUBLISHED" : "UNPUBLISHED"; |
| | | this.province.id = city.map(city => city.id); |
| | | this.$modal.confirm('是否确认' + text + '考核名为"' + cityName + '"的数据项?') |
| | | this.$modal.confirm('是否确认' + text + '考核名为"' + cityName + '"的成绩?') |
| | | .then(() => { |
| | | return publishScore(this.province); |
| | | }) |
File was renamed from src/views/system/template/index.vue |
| | |
| | | <script> |
| | | import { listCheckTemplate, getCheckTemplate, delCheckTemplate, addCheckTemplate, updateCheckTemplate,copyCheckTemplate } from "@/api/platform/check-template"; |
| | | import { areaSelect } from '@/api/system/dept' |
| | | import { listCheckRule } from "../../../api/platform/check-rule"; |
| | | import { listCheckRule } from "../../../../api/platform/check-rule"; |
| | | |
| | | export default { |
| | | name: "CheckTemplate", |
| | |
| | | const faceRules = this.ruleList['faceRules']; // 人脸相关的规则集合 |
| | | |
| | | // 使用条件语句来选择规则列表 |
| | | if (ruleListKey == 0) { |
| | | if (ruleListKey == 2) { |
| | | return carRules; |
| | | } else if (ruleListKey == 1) { |
| | | } else if (ruleListKey == 3) { |
| | | return faceRules; |
| | | } else if (ruleListKey == 2) { |
| | | } else if (ruleListKey == 1) { |
| | | return videoRules; |
| | | } else { |
| | | // 默认返回一个空数组或备选方案 |
File was renamed from src/views/system/calculate/order/index.vue |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { resultRecord, listCheckResult, getCheckResult, delCheckResult, addCheckResult, updateCheckResult,manualScore, publishCheckResult } from "@/api/platform/check-result"; |
| | | import { resultRecord, listCheckResult, getCheckResult, delCheckResult, addCheckResult, updateCheckResult,manualScore, publishCheckResult } from "@/api/platform/contract-result"; |
| | | import { unitSelect } from "@/api/platform/unit"; |
| | | |
| | | export default { |
File was renamed from src/views/system/contract/index.vue |
| | |
| | | |
| | | <script> |
| | | import { listContract, getContract, updateContract } from "@/api/platform/contract"; |
| | | import { getRuleListByContractId } from "../../../api/platform/calculate-rule"; |
| | | import { getMoneyRulesByContractId } from "../../../api/platform/calculate-money-rule"; |
| | | import { unitSelect } from "../../../api/platform/unit"; |
| | | import { deptSelect } from "../../../api/system/dept"; |
| | | import { getRuleListByContractId } from "../../../../api/platform/calculate-rule"; |
| | | import { getMoneyRulesByContractId } from "../../../../api/platform/calculate-money-rule"; |
| | | import { unitSelect } from "../../../../api/platform/unit"; |
| | | import { deptSelect } from "../../../../api/system/dept"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import { ImagePreview } from "@/components/ImagePreview"; |
| | | |
| | |
| | | <el-date-picker v-model="auditingForm.endCreateTime" disabled /> |
| | | </el-form-item> |
| | | <el-form-item label="报备内容"> |
| | | <el-input type="textarea" v-html="auditingForm.reportContent" disabled /> |
| | | <span v-html="auditingForm.reportContent"></span> |
| | | </el-form-item> |
| | | <el-form-item label="上报材料"> |
| | | <el-link |
| | |
| | | this.queryParams["endAuditingTime"] = this.daterangeAuditingTime[1]; |
| | | } |
| | | listReport(this.queryParams).then(response => { |
| | | this.reportList = response.data; |
| | | this.reportList = response.data.records; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | |
| | | queryParams: { |
| | | unitId: null, |
| | | pageNum: 1, |
| | | pageSize: 20, |
| | | pageSize: 10, |
| | | }, |
| | | // 总条数 |
| | | total: 0, |
| | |
| | | this.loading = true; |
| | | this.selectUnit(); |
| | | distributeWorkOrder(this.queryParams).then(res => { |
| | | this.workOrderList = res.data; |
| | | this.workOrderList = res.data.records; |
| | | this.total = res.total; |
| | | this.loading = false; |
| | | }) |
| | |
| | | </el-form> |
| | | |
| | | <el-row :gutter="20"> |
| | | <el-col :xl="6" :lg="8" :md="12" :sm="24" v-for="item in workOrderList" :key="item" style="margin-bottom: 20px;"> |
| | | <el-col :xl="6" :lg="8" :md="12" :sm="24" v-for="item in workOrderList" :key="item.id" style="margin-bottom: 20px;"> |
| | | <el-card :body-style="{ padding: '0px',display: 'flex' }"> |
| | | <el-image :preview-src-list="['https://img2.baidu.com/it/u=68398439,1553004927&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=357']" fit="cover" src="https://img2.baidu.com/it/u=68398439,1553004927&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=357" class="image"/> |
| | | <div style="padding-right: 10px;padding-top: 10px;"> |
| | | <el-row> |
| | | <el-col :span="24" class="time">故障类型:<el-tag size="small" type="danger">市政施工</el-tag></el-col> |
| | | <el-col :span="24" class="time">故障类型:<el-tag size="small" type="danger">{{ item.errorType }}</el-tag></el-col> |
| | | </el-row> |
| | | <el-row class="work-order-item"> |
| | | <el-col class="time" :span="24">运维人员:{{ item.ywPeopleName }}</el-col> |
| | |
| | | <el-input v-model="auditingForm.ywPeopleName" disabled /> |
| | | </el-form-item> |
| | | <el-form-item label="现场情况" v-if="auditingForm.condition"> |
| | | <el-input type="textarea" v-html="auditingForm.condition" disabled /> |
| | | <span v-html="auditingForm.condition"></span> |
| | | </el-form-item> |
| | | <el-form-item label="佐证材料" v-if="auditingForm.proofMaterials"> |
| | | <el-link v-for="item in auditingForm.proofMaterials != null ? auditingForm.proofMaterials.split(',') : auditingForm.proofMaterials" :underline="false" :key="item" @click="handleDownload(item)">{{ item.substring(item.lastIndexOf("/") + 1) }}</el-link> |
| | | <el-link v-for="item in auditingForm.proofMaterials != null ? auditingForm.proofMaterials.split(',') : auditingForm.proofMaterials" :underline="false" :key="item.id" @click="handleDownload(item)">{{ item.substring(item.lastIndexOf("/") + 1) }}</el-link> |
| | | </el-form-item> |
| | | <el-form-item label="审核结果" prop="auditingResult"> |
| | | <el-radio v-model="auditingForm.auditingResult" label="AUDITING_SUCCESS">通过</el-radio> |
| | |
| | | </el-step> |
| | | <el-step title="运维处理"> |
| | | <template slot="description"> |
| | | <div class="y-item" v-for="(item, index) in ywHandleList"> |
| | | <div class="y-item" v-for="(item, index) in ywHandleList" :key="index"> |
| | | <div class="y-item-1"> |
| | | <div class="flow-item-x"> |
| | | 现场情况: |
| | |
| | | </el-step> |
| | | <el-step title="结果审核"> |
| | | <template slot="description"> |
| | | <div class="y-item" v-for="(item, index) in ywAuditingList"> |
| | | <div class="y-item" v-for="(item, index) in ywAuditingList" :key="index"> |
| | | <div class="y-item-1"> |
| | | <div class="flow-item-x"> |
| | | 审核结果:<el-tag :type="item.result == '审核通过' ? 'success' : 'danger'" size="small">{{ item.result }}</el-tag> |
| | |
| | | getList() { |
| | | this.loading = true; |
| | | this.queryParams.params = {}; |
| | | this.queryParams["start"] = this.daterangeYwHandleTime[0]; |
| | | this.queryParams["end"] = this.daterangeYwHandleTime[1]; |
| | | this.queryParams["start"] = this.daterangeYwHandleTime ? this.daterangeYwHandleTime[0] : null; |
| | | this.queryParams["end"] = this.daterangeYwHandleTime ? this.daterangeYwHandleTime[1] : null; |
| | | if (this.queryParams["status"] == "") { this.queryParams["status"] = "DISTRIBUTED"; } |
| | | listWorkOrder(this.queryParams).then(response => { |
| | | this.workOrderList = response.data; |
File was renamed from src/views/system/threshold/index.vue |
| | |
| | | |
| | | <script> |
| | | import { listThreshold, getThreshold, editVideo } from '@/api/platform/threshold' |
| | | import { editCar, editFace, getCar, getFace, getVideo } from '../../../api/platform/threshold' |
| | | import { editCar, editFace, getCar, getFace, getVideo } from '../../../../api/platform/threshold' |
| | | |
| | | export default { |
| | | dicts: ['image_qualify', 'video_qualify'], |