| | |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="审核时间"> |
| | | <el-date-picker v-model="daterangeAuditingTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" |
| | | type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker> |
| | | <el-date-picker v-model="daterangeAuditingTime" style="width: 240px" value-format="yyyy-MM-dd" |
| | | type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="handleQuery"></el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="创建时间"> |
| | | <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-date-picker> |
| | | <el-date-picker v-model="daterangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" |
| | | type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="handleQuery"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button> |
| | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" |
| | | v-hasPermi="['platform:score:add']">新增</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" |
| | | v-hasPermi="['platform:score:edit']">修改</el-button> |
| | | v-hasPermi="['contract:score:add']">新增</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" |
| | | v-hasPermi="['platform:score:remove']">删除</el-button> |
| | | v-hasPermi="['contract:score:remove']">删除</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" |
| | | v-hasPermi="['platform:score:export']">导出</el-button> |
| | | v-hasPermi="['contract:score:export']">导出</el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | |
| | | <el-table-column label="考核合同" align="center" prop="contractName"/> |
| | | <el-table-column label="考核规则" align="center" prop="ruleName" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="扣减方式" align="center" prop="deductCategory"/> |
| | | <el-table-column label="考核指标" align="center" prop="num"/> |
| | | <el-table-column label="超期量值" align="center" prop="num"/> |
| | | <el-table-column label="考核扣分" align="center" prop="score"/> |
| | | <el-table-column label="创建时间" align="center" prop="createTime" width="180px"/> |
| | | <el-table-column label="审核状态" align="center" prop="auditingStatus"> |
| | |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)">详情</el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-s-check" @click="handleAuditing(scope.row)" |
| | | v-hasPermi="['default:audit']" v-if="scope.row.auditingStatus === '待审核'">审核</el-button> |
| | | v-hasPermi="['contract:score:audit']" v-if="scope.row.auditingStatus === '待审核'">审核</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" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button> |
| | | v-hasPermi="['contract:score:edit']">修改</el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['contract:score:remove']">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-form-item label="运维考核规则"> |
| | | <el-input v-model="auditingForm.ruleName" type="textarea" autosize disabled /> |
| | | </el-form-item> |
| | | <el-form-item label="运维考核指标"> |
| | | <el-form-item label="运维超期量值"> |
| | | <el-input v-model="auditingForm.num" disabled /> |
| | | </el-form-item> |
| | | <el-form-item label="运维考核扣分"> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitAuditing">确 定</el-button> |
| | | <el-button @click="closeAuditing">取 消</el-button> |
| | | <el-button type="primary" @click="submitAuditing">确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- 新增或修改 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body> |
| | | <el-dialog :title="title" :visible.sync="open" width="800px" 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"> |
| | |
| | | <div class="row-left"> |
| | | <div class="block"> |
| | | <span class="demonstration"></span> |
| | | <el-cascader ref="cascader" v-model="form.ruleIdsArray" :options="options" @change="handleChange"> |
| | | <el-cascader |
| | | ref="cascader" |
| | | v-model="form.ruleIdsArray" |
| | | :options="options" |
| | | @change="handleChange" |
| | | :props="{ expandTrigger: 'hover'}" |
| | | > |
| | | <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.deductCategory == '除以数量后乘以分数' ? '扣' + data.calcFraction + '分/' + data.calcUnit + '小时' : '扣' + data.calcFraction + '分' : |
| | | '' : |
| | | (data.deductCategory ? |
| | | data.label + ' ' + (data.deductCategory == '分数乘以数量' ? '扣' + data.calcFraction + '分*数量 ' : data.deductCategory == '除以数量后乘以分数' ? '扣' + data.calcFraction + '分/' + data.calcUnit + '小时' : '扣' + data.calcFraction + '分') : |
| | | data.label)" |
| | | placement="left"> |
| | | <el-tooltip class="item" :disabled="calculateTooltipDisabled(data)" effect="dark" |
| | | :content="calculateTooltipContent(data)" placement="left"> |
| | | <span>{{ data.label }}</span> |
| | | </el-tooltip> |
| | | </template> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="row-right" v-if="needNum"> |
| | | <div>指标</div> |
| | | <div>次数/数量/小时</div> |
| | | <div class="margin-5"> |
| | | <el-input placeholder="请输入" v-model="form.num" @input="handleChangeNum" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div> |
| | | {{ ruleDescription}} |
| | | </div> |
| | | |
| | | </el-form-item> |
| | | <el-form-item label="运维考核扣分" style="width: 51%" prop="score"> |
| | | <el-form-item label="运维考核扣分" style="width: 30%" 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="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | |
| | | <el-form-item label="考核单位:">{{ view.unitName }}</el-form-item> |
| | | <el-form-item label="考核合同:">{{ view.contractName }} </el-form-item> |
| | | <el-form-item label="考核规则:">{{ view.ruleName }} </el-form-item> |
| | | <el-form-item label="考核指标:">{{ view.num }} </el-form-item> |
| | | <el-form-item label="超期量值:">{{ view.num }} </el-form-item> |
| | | <el-form-item label="考核扣分:">{{ view.score }} </el-form-item> |
| | | <el-form-item label="创建人:">{{ view.createUser }} </el-form-item> |
| | | <el-form-item label="创建时间:">{{ view.createTime }} </el-form-item> |
| | |
| | | auditingOpen: false, |
| | | auditingForm: {}, |
| | | unitList: [], |
| | | ruleDescription: '', // 添加规则描述字段 |
| | | // 考核模板 |
| | | examineList: [ |
| | | { id: 1, value: "车辆考核" }, |
| | |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getUnitSelect(); |
| | | if(this.$route.query.time){ |
| | | this.daterangeCreateTime= this.$route.query.time |
| | | } |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | /** 详细按钮操作 */ |
| | |
| | | let item = this.$refs['cascader'].getCheckedNodes()[0].data; |
| | | this.calcObj = item; |
| | | this.form.contractId = item.contractId; |
| | | this.form.ruleName = item.ruleName + " / " + item.label; |
| | | this.form.deductCategory = item.deductCategory == '分数乘以数量' ? '扣' + item.calcFraction + '分*数量 ' : item.deductCategory == '除以数量后乘以分数' ? '扣' + item.calcFraction + '分/' + item.calcUnit + '小时' : '扣' + item.calcFraction + '分'; |
| | | this.ruleDescription = this.calculateTooltipContent(item); |
| | | if (item.deductCategory == "扣指定分数") { |
| | | this.needNum = false; |
| | | this.form.score = item.calcFraction; |
| | |
| | | // 运维单位下拉列表 |
| | | unitSelect().then((res) => { |
| | | this.unitList = res.data; |
| | | if (this.$route.query.unitId) { |
| | | // 先找到对应的选项 |
| | | const unit = this.unitList.find(item => item.id === Number(this.$route.query.unitId) || item.id === this.$route.query.unitId); |
| | | if (unit) { |
| | | this.queryParams.unitId = unit.id; // 确保类型匹配 |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | /** 查询违规审核列表 */ |
| | |
| | | if (null != this.daterangeAuditingTime && '' != this.daterangeAuditingTime) { |
| | | this.queryParams["auditingStartTime"] = this.daterangeAuditingTime[0]; |
| | | this.queryParams["auditingEndTime"] = this.daterangeAuditingTime[1]; |
| | | } else { |
| | | this.queryParams["auditingStartTime"] = null; |
| | | this.queryParams["auditingEndTime"] = null; |
| | | } |
| | | if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) { |
| | | this.queryParams["createStartTime"] = this.daterangeCreateTime[0]; |
| | | this.queryParams["createEndTime"] = this.daterangeCreateTime[1]; |
| | | } else { |
| | | this.queryParams["createStartTime"] = null; |
| | | this.queryParams["createEndTime"] = null; |
| | | } |
| | | console.log("this.queryParams", this.queryParams) |
| | | listAuditing(this.queryParams).then(response => { |
| | | this.auditingList = response.rows; |
| | | this.total = response.total; |
| | |
| | | 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.download('/contract/score/export', { |
| | | ...this.queryParams |
| | | }, `合同考核积分_${new Date().getTime()}.xlsx`) |
| | | }, |
| | | calculateTooltipDisabled(data) { |
| | | return data.label.length < 16 && !data.deductCategory; |
| | | }, |
| | | calculateTooltipContent(data) { |
| | | let content = ''; |
| | | if (data.label.length < 16) { |
| | | if (data.deductCategory) { |
| | | switch (data.deductCategory) { |
| | | case '分数乘以数量': |
| | | content = '扣' + data.calcFraction + '分*数量 '; |
| | | break; |
| | | case '除以数量后乘以分数': |
| | | content = '扣' + data.calcFraction + '分/' + data.calcUnit + '小时'; |
| | | break; |
| | | default: |
| | | content = '扣' + data.calcFraction + '分'; |
| | | } |
| | | } |
| | | } else { |
| | | if (data.deductCategory) { |
| | | switch (data.deductCategory) { |
| | | case '分数乘以数量': |
| | | content = data.label + ' 扣' + data.calcFraction + '分*数量 '; |
| | | break; |
| | | case '除以数量后乘以分数': |
| | | content = data.label + ' 扣' + data.calcFraction + '分/' + data.calcUnit + '小时'; |
| | | break; |
| | | default: |
| | | content = data.label + ' 扣' + data.calcFraction + '分'; |
| | | } |
| | | } else { |
| | | content = data.label; |
| | | } |
| | | } |
| | | return content; |
| | | } |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |