李磊
3 years ago
6 changed files with 978 additions and 1943 deletions
File diff suppressed because it is too large
@ -1,784 +0,0 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div class="filter-container"> |
|||
<sticky style="margin-bottom: 10px;"> |
|||
<div class="sub-navbar"> |
|||
<el-button v-show="this.$store.getters.username !== 'shiting'" type="primary" icon="el-icon-sold-out" @click="renwuFp"> |
|||
批量分配 |
|||
</el-button> |
|||
<el-button type="primary" icon="el-icon-edit" @click="openZhongjian"> |
|||
标注现场检验 |
|||
</el-button> |
|||
<el-button type="warning" @click="clearBaseZhongjian"> |
|||
<svg-icon icon-class="clear" /> |
|||
取消现场检验 |
|||
</el-button> |
|||
<el-button type="primary" icon="el-icon-edit" @click="openBaseZhongjian"> |
|||
标注部分设备现场检验 |
|||
</el-button> |
|||
<el-button type="warning" @click="returnToBjd"> |
|||
<svg-icon icon-class="reject" /> 异常退回 |
|||
</el-button> |
|||
<el-button type="danger" icon="el-icon-error" @click="renwuZf"> |
|||
作废数据 |
|||
</el-button> |
|||
<div style="float: right;margin-top:8px;"> |
|||
<div style="width: 210px;float:left;margin-left: 50px;"> |
|||
申请现场检验(<span style="background-color: #0831e4;"> </span>企/<span style="background-color: #da6b83;"> </span>科) |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</sticky> |
|||
<el-form> |
|||
<el-form-item> |
|||
<el-input v-model="listQuery.searchRenwu.serialNumber" placeholder="报检单号" clearable style="width: 160px" @keyup.enter.native="handleFilter" /> |
|||
<el-select v-model="listQuery.searchRenwu.shebeizhongleidaima" placeholder="请选择设备种类" clearable @change="handleFilter"> |
|||
<el-option v-for="item in sbzlList" :key="item.value" :label="item.label" :value="item.value" /> |
|||
</el-select> |
|||
<el-select v-model="listQuery.searchRenwu.quhuadaima" placeholder="请选择所属区划" clearable value="" @change="handleFilter"> |
|||
<el-option |
|||
v-for="item in areas" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
/> |
|||
</el-select> |
|||
<el-input v-model="listQuery.searchRenwu.shiyongdanwei" placeholder="使用单位名称" clearable style="width: 400px" @keyup.enter.native="handleFilter" /> |
|||
<el-button type="primary" icon="el-icon-search" @click="handleFilter"> |
|||
查询 |
|||
</el-button> |
|||
<el-button type="info" icon="el-icon-clear" @click="clearSearch"> |
|||
清除 |
|||
</el-button> |
|||
<br> |
|||
<el-select v-model="listQuery.searchRenwu.jianyanleibie" placeholder="检验类别" clearable style="width:100px" value="" @change="handleFilter"> |
|||
<el-option value="DJ" label="定期检验" /> |
|||
<el-option value="JJ" label="监督检验" /> |
|||
</el-select> |
|||
<el-date-picker v-model="listQuery.searchRenwu.shouliriqi" type="date" value-format="yyyy-MM-dd" placeholder="选择报检日期" style="width: 150px" @change="handleFilter" /> |
|||
<el-input v-model="listQuery.searchRenwu.shigongdanwei" placeholder="施工单位名称" clearable style="width: 300px" @keyup.enter.native="handleFilter" /> |
|||
<el-date-picker v-model="listQuery.searchRenwu.xianchangjianyanStart" type="date" value-format="yyyy-MM-dd" placeholder="现场检验日期(起)" style="width: 180px;" /> |
|||
<el-date-picker v-model="listQuery.searchRenwu.xianchangjianyanEnd" type="date" value-format="yyyy-MM-dd" placeholder="现场检验日期(止)" style="width: 180px;" /> |
|||
<el-select v-model="listQuery.searchRenwu.shouliren" filterable allow-create default-first-option clearable placeholder="请选择受理人员" style="width: 110px;"> |
|||
<el-option v-for="user in users" :key="user.id" :label="user.nickname" :value="user.nickname" /> |
|||
</el-select> |
|||
<span class="radio-group-label">申请现场检验:</span> |
|||
<el-radio-group v-model="listQuery.searchRenwu.zhongjianState" @change="handleFilter"> |
|||
<el-radio :label="0"> |
|||
否 |
|||
</el-radio> |
|||
<el-radio :label="1"> |
|||
是 |
|||
</el-radio> |
|||
</el-radio-group> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
<el-table |
|||
ref="list" |
|||
v-loading="showLoading" |
|||
element-loading-text="正在加载" |
|||
element-loading-spinner="el-icon-loading" |
|||
:data="list" |
|||
border |
|||
fit |
|||
highlight-current-row |
|||
stripe |
|||
width="100%" |
|||
height="600px" |
|||
:row-class-name="tableRowZhongjian" |
|||
@row-click="onRowClick" |
|||
@selection-change="handleSelectionChange" |
|||
@sort-change="sortChange" |
|||
> |
|||
<el-table-column type="selection" width="40" /> |
|||
<el-table-column fixed="left" align="center" label="序号" width="60"> |
|||
<template slot-scope="scope"> |
|||
<span v-text="getIndex(scope.$index)" /> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="center" label="设备种类" prop="shebeizhonglei" width="130"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="scope.row.shebeizhongleidaima === '3000' && scope.row.shebeileixing !== null">电梯({{ scope.row.shebeileixing }})</span> |
|||
<span v-else>{{ scope.row.shebeizhonglei }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="center" label="检验类别" prop="jianyanleibie" width="80"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="scope.row.jianyanleibie === 'DJ'">定期检验</span> |
|||
<span v-else-if="scope.row.jianyanleibie === 'JJ'">监督检验</span> |
|||
<span v-else-if="scope.row.jianyanleibie === 'JJ' && scope.row.neibuleibie === 'SC'">首次检验</span> |
|||
<span v-else-if="scope.row.jianyanleibie === 'ZZ' && scope.row.neibuleibie === 'ZJ'">制造检验</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="center" label="报检单号" prop="serialNumber" width="140" sortable="custom" /> |
|||
<el-table-column align="center" label="使用单位" prop="shiyongdanwei" width="300" /> |
|||
<el-table-column align="center" label="施工单位/维保单位" prop="shigongdanwei" width="240"> |
|||
<template slot-scope="scope"> |
|||
<span v-if="scope.row.jianyanleibie === 'DJ' && scope.row.shebeizhongleidaima === '3000'">{{ scope.row.weibaodanwei }}</span> |
|||
<span v-else>{{ scope.row.shigongdanwei }}</span> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="center" label="维保电话" prop="weibaodanweiDianhua" width="110" /> |
|||
<el-table-column align="center" label="使用单位地址" prop="shiyongdanweiDizhi" width="300" /> |
|||
<el-table-column align="center" label="申请现场检验日期" prop="zhongjianriqi" width="160" sortable="custom" /> |
|||
<el-table-column align="center" label="现场检验备注" prop="zhongjianBeizhu" width="110" /> |
|||
<el-table-column fixed="right" align="center" label="区划名称" prop="quhuamingcheng" width="110" sortable /> |
|||
<el-table-column fixed="right" align="center" label="报检日期" prop="shouliriqi" width="110" sortable /> |
|||
<el-table-column fixed="right" align="center" label="受理人" prop="shouliren" width="100" /> |
|||
<el-table-column fixed="right" align="center" label="备注" prop="bjdBeizhu" width="80" /> |
|||
<el-table-column fixed="right" align="left" label="设备台数(待/总)" width="140"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="success" size="small" circle icon="el-icon-view" title="预览报检单" @click="viewBjd(scope.row)" /> |
|||
<el-button style="margin-left:1px" size="small" circle @click="viewBjdRenwu(scope.row.bjdId)"> |
|||
<span style="color: #67C23A;font-weight: bold">{{ scope.row.allotNum }}</span> / <span style="color: #F56C6C;font-weight: bold">{{ scope.row.totalNum }}</span> |
|||
</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-pagination |
|||
:current-page="listQuery.pageNum" |
|||
:page-size="listQuery.pageSize" |
|||
:total="total" |
|||
:page-sizes="[10, 20, 40, 100]" |
|||
background |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
@size-change="handleSizeChange" |
|||
@current-change="handleCurrentChange" |
|||
/> |
|||
<el-dialog :visible.sync="dialogVisible" :title="title" width="70%" @close="closeDialog"> |
|||
<el-container> |
|||
<el-form> |
|||
<el-form-item> |
|||
<el-select v-model="departmentId" placeholder="请选择科室" style="width: 150px;" @change="selectDepartmentUser"> |
|||
<el-option v-for="dept in depts" :key="dept.id" :label="dept.name" :value="dept.id" /> |
|||
</el-select> |
|||
<el-select v-model="renwudan.teamId" placeholder="请选择检验小组" style="width: 150px;" @change="selectTeamUser"> |
|||
<el-option v-for="team in teams" :key="team.id" :label="team.name" :value="team.id" /> |
|||
</el-select> |
|||
<el-select v-model="renlingren" :collapse-tags="true" placeholder="请选择人员" multiple style="width: 160px;"> |
|||
<el-option v-for="user in users" :key="user.id" :label="user.nickname" :value="user.id" /> |
|||
</el-select> |
|||
<el-button type="primary" @disabled="btnClick" @click="allotRenwu"> |
|||
执行分配 |
|||
</el-button> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-date-picker v-model="renwudan.xiadariqi" type="date" placeholder="选择下达日期" style="width: 150px;" /> |
|||
<el-date-picker v-model="renwudan.yuejianriqi" type="date" placeholder="选择约检日期" style="width: 150px;" @blur="setWanchengqixian()" /> |
|||
<el-date-picker v-model="renwudan.wanchengqixian" type="date" placeholder="选择完成期限" style="width: 150px;" /> |
|||
<el-select v-model="renwudan.jianyanleixing" :collapse-tags="true" placeholder="请选择检验类型" style="width: 130px;"> |
|||
<el-option key="初检" label="初检" value="初检" /> |
|||
<el-option key="复检" label="复检" value="复检" /> |
|||
</el-select> |
|||
<el-input v-model="renwudan.beizhu" type="text" style="width: 240px;" placeholder="请填写备注信息" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
</el-container> |
|||
<el-table ref="allotList" :data="allotList" size="small" style="width: 150%" border fit highlight-current-row :row-class-name="tableRowBfZhongjian" @row-click="onDialogRowClick" @selection-change="handleDialogSelectionChange"> |
|||
<el-table-column type="selection" width="45" /> |
|||
<el-table-column align="center" label="序号" width="50" fixed="left"> |
|||
<template slot-scope="scope"> |
|||
<span v-text="getIndex(scope.$index)" /> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column v-if="allotSbzl === '2000'" align="center" label="设备名称" prop="shebeimingcheng" width="150" /> |
|||
<el-table-column align="center" :formatter="formatter.formatterCategory" label="检验项目" prop="neibuleibie" width="100" /> |
|||
<el-table-column align="center" label="下次检验日期" prop="xiacijianyanriqi" width="100" /> |
|||
<el-table-column align="center" label="使用单位" prop="shiyongdanwei" width="240px;" /> |
|||
<el-table-column v-if="allotSbzl !== '8000'" align="center" label="产品编号/出厂编号" prop="chanpinbianhao" width="140" /> |
|||
<el-table-column align="center" label="区划名称" prop="quhuamingcheng" width="80" /> |
|||
<el-table-column align="center" label="注册代码" prop="zhucedaima" width="160" /> |
|||
<el-table-column align="center" label="使用登记编号" prop="shiyongdengjibianhao" width="160" /> |
|||
<template v-if="allotSbzl === '8000'"> |
|||
<el-table-column align="center" label="管道长度(m)/数量(条)" prop="s32" width="140" /> |
|||
<el-table-column align="center" label="管道级别" prop="s7" width="140" /> |
|||
</template> |
|||
<el-table-column align="center" label="申请现场检验日期" prop="shenqingxianchangriqi" width="160" /> |
|||
</el-table> |
|||
</el-dialog> |
|||
<el-dialog :visible.sync="dialogXianchangVisible" title="标注现场检验日期及备注填写" width="30%" @close="dialogXianchangVisible = false"> |
|||
<el-form ref="bjdZhongjian" :model="bjdZhongjian"> |
|||
<el-form-item v-if="this.$store.getters.username === 'yangyq' || this.$store.getters.username === 'shiting'" label="申请现场日期" prop="xianchangriqi"> |
|||
<el-date-picker v-model="bjdZhongjian.xianchangriqi" type="date" value-format="yyyy-MM-dd" placeholder="申请现场检验日期" style="width: 100%;" disabled /> |
|||
</el-form-item> |
|||
<el-form-item v-else label="申请现场日期" prop="xianchangriqi"> |
|||
<el-date-picker v-model="bjdZhongjian.xianchangriqi" type="date" value-format="yyyy-MM-dd" placeholder="申请现场检验日期" style="width: 100%;" /> |
|||
</el-form-item> |
|||
<el-form-item label="申请现场备注" prop="xianchangbeizhu"> |
|||
<el-input v-model="bjdZhongjian.xianchangbeizhu" type="textarea" :rows="5" placeholder="请填写备注信息" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-button type="primary" @disabled="btnClick" @click="tijiaoJianyan"> |
|||
提交 |
|||
</el-button> |
|||
</el-dialog> |
|||
<el-dialog :visible.sync="dialogXcjyVisible" title="标注设备申请现场检验" width="55%" @close="closeDialog"> |
|||
<el-form ref="bjdZhongjian" :model="bjdZhongjian"> |
|||
<el-row :gutter="20"> |
|||
<el-col :span="10"> |
|||
<el-form-item v-if="this.$store.getters.username === 'yangyq' || this.$store.getters.username === 'shiting'" label="申请现场日期" prop="xianchangriqi" style="width: 600px"> |
|||
<el-date-picker v-model="bjdZhongjian.xianchangriqi" type="date" value-format="yyyy-MM-dd" placeholder="申请现场检验日期" style="width: 50%;" disabled /> |
|||
</el-form-item> |
|||
<el-form-item v-else label="申请现场日期" prop="xianchangriqi"> |
|||
<el-date-picker v-model="bjdZhongjian.xianchangriqi" type="date" value-format="yyyy-MM-dd" placeholder="申请现场检验日期" style="width: 50%;" /> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-button type="primary" @disabled="btnClick" @click="tijiaoJianyanBf"> |
|||
提交 |
|||
</el-button> |
|||
</el-form> |
|||
<el-table ref="allotList" :data="allotList" size="small" style="width: 100%" border fit highlight-current-row :row-class-name="tableRowBfZhongjian" @row-click="onDialogRowClick" @selection-change="handleDialogSelectionChange"> |
|||
<el-table-column type="selection" width="45" /> |
|||
<el-table-column align="center" label="序号" width="50" fixed="left"> |
|||
<template slot-scope="scope"> |
|||
<span v-text="getIndex(scope.$index)" /> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column align="center" :formatter="formatter.formatterCategory" label="检验项目" prop="neibuleibie" width="100" /> |
|||
<el-table-column align="center" label="使用单位" prop="shiyongdanwei" width="240px;" /> |
|||
<el-table-column align="center" label="区划名称" prop="quhuamingcheng" width="80" /> |
|||
<el-table-column align="center" label="产品编号" prop="chanpinbianhao" width="160" /> |
|||
<el-table-column align="center" label="申请现场检验日期" prop="shenqingxianchangriqi" width="160" /> |
|||
<el-table-column align="center" label="操作" width="140"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="warning" size="small" circle @click="clearShenqingriqi(scope.$index)"> |
|||
<svg-icon icon-class="clear" /> |
|||
</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Sticky from '@/components/Sticky' |
|||
import Utils from '@/utils/contact' |
|||
export default { |
|||
name: 'AllotListJiDian', |
|||
components: { Sticky }, |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
total: 0, |
|||
list: [], |
|||
sbzlList: [], |
|||
listQuery: { |
|||
pageNum: 1, // 页码 |
|||
pageSize: 20, // 每页条数 |
|||
orderBy: 'shouliriqi desc', |
|||
searchRenwu: { |
|||
shiyongdanwei: undefined, |
|||
shebeizhongleidaima: '', |
|||
bjState: '2' |
|||
} |
|||
}, |
|||
renwudan: { |
|||
teamId: '', |
|||
xiadariqi: '', |
|||
yuejianriqi: '', |
|||
wanchengqixian: '', |
|||
jianyanleixing: '初检', |
|||
beizhu: '' |
|||
}, |
|||
tempDepartment: {}, |
|||
multipleSelection: [], |
|||
allotList: [], |
|||
depts: [], |
|||
users: [], |
|||
areas: [], // 区划数组 |
|||
departmentId: this.$store.getters.departmentId, |
|||
renlingren: [], |
|||
selection: [], |
|||
departmentUserList: [], |
|||
unAllotUserList: [], |
|||
btnClick: false, |
|||
showLoading: true, |
|||
allotSbzl: '', |
|||
teams: [], |
|||
bjdids: '', |
|||
dialogXianchangVisible: false, |
|||
dialogXcjyVisible: false, |
|||
bjdZhongjian: { |
|||
bjdid: '', |
|||
xianchangriqi: '', |
|||
xianchangbeizhu: '', |
|||
renwuIds: '' |
|||
}, |
|||
title: '任务分配' |
|||
} |
|||
}, |
|||
created() { |
|||
this.getList() |
|||
this.getDepartment() |
|||
this.getArea() |
|||
this.getSbzlList() |
|||
this.getUserList(this.departmentId) |
|||
this.getTeamList(this.departmentId) |
|||
}, |
|||
mounted() { |
|||
const that = this |
|||
this.common.$on('AllotListJiDianListRefresh', function() { |
|||
that.handleFilter() |
|||
}) |
|||
}, |
|||
methods: { |
|||
getList() { |
|||
this.showLoading = true |
|||
this.apibjd({ |
|||
url: '/renwu/list', |
|||
method: 'get', |
|||
params: this.listQuery |
|||
}).then(data => { |
|||
this.list = data.list |
|||
this.total = data.total |
|||
this.showLoading = false |
|||
}) |
|||
}, |
|||
getSbzlList() { |
|||
this.api({ |
|||
url: '/sedirectory/getList', |
|||
method: 'get', |
|||
params: { |
|||
sbzl: undefined, |
|||
level: '1' |
|||
} |
|||
}).then(data => { |
|||
this.sbzlList = data |
|||
}) |
|||
}, |
|||
handleSizeChange(val) { |
|||
// 改变每页数量 |
|||
this.listQuery.pageSize = val |
|||
this.handleFilter() |
|||
}, |
|||
handleCurrentChange(val) { |
|||
// 改变页码 |
|||
this.listQuery.pageNum = val |
|||
this.getList() |
|||
}, |
|||
handleFilter() { |
|||
// 查询事件 |
|||
this.listQuery.pageNum = 1 |
|||
this.getList() |
|||
}, |
|||
getIndex($index) { |
|||
// 表格序号 |
|||
return (this.listQuery.pageNum - 1) * this.listQuery.pageSize + $index + 1 |
|||
}, |
|||
// 批量分配 |
|||
renwuFp() { |
|||
this.allotList = [] |
|||
if (this.multipleSelection.length === 0) { |
|||
this.$message({ message: '请在列表选择要操作的数据。', type: 'warning' }) |
|||
return false |
|||
} |
|||
for (let i = 0; i < this.multipleSelection.length; i++) { |
|||
if (i === 0) { |
|||
this.bjdIds = this.multipleSelection[i].bjdId |
|||
} else { |
|||
this.bjdIds = this.bjdIds + ',' + this.multipleSelection[i].bjdId |
|||
} |
|||
} |
|||
this.apibjd({ |
|||
url: '/renwu/getAllotBaseList', |
|||
method: 'post', |
|||
data: { |
|||
bjdIds: this.bjdIds |
|||
} |
|||
}).then(data => { |
|||
this.allotList = data.list |
|||
this.allotSbzl = this.allotList[0].shebeizhongleidaima |
|||
this.renwudan = { |
|||
xiadariqi: new Date() |
|||
} |
|||
if (this.multipleSelection[0].shebeileixing !== undefined && this.multipleSelection[0].shebeileixing !== null) { |
|||
this.title = '任务分配(' + this.multipleSelection[0].shebeileixing + ')' |
|||
} |
|||
this.dialogVisible = true |
|||
this.$nextTick(() => { |
|||
this.$refs.allotList.toggleAllSelection() |
|||
this.selection = data.list |
|||
}) |
|||
}) |
|||
}, |
|||
// 任务异常退回 |
|||
returnToBjd() { |
|||
if (this.multipleSelection.length === 0) { |
|||
this.$message({ message: '请在列表选择要退回的数据。', type: 'warning' }) |
|||
return false |
|||
} |
|||
let bjdIds = '' |
|||
for (let i = 0; i < this.multipleSelection.length; i++) { |
|||
if (i === 0) { |
|||
bjdIds = this.multipleSelection[i].bjdId |
|||
} else { |
|||
bjdIds = bjdIds + ',' + this.multipleSelection[i].bjdId |
|||
} |
|||
} |
|||
// 查询任务的分配状态 |
|||
for (let i = 0; i < this.multipleSelection.length; i++) { |
|||
if (this.multipleSelection[i].allotNum !== this.multipleSelection[i].totalNum) { |
|||
this.$message({ message: '有任务已经分配,请重新选择。', type: 'warning' }) |
|||
return false |
|||
} else { |
|||
this.$prompt('请输入退回原因', '提示', { |
|||
inputType: 'textarea', |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消' |
|||
}).then(({ value }) => { |
|||
this.apibjd({ |
|||
url: '/bjd/returnToBjd', |
|||
method: 'get', |
|||
params: { |
|||
bjdIds: bjdIds, |
|||
reason: value |
|||
} |
|||
}).then(data => { |
|||
this.getList() |
|||
this.$message({ message: '任务异常退回成功', type: 'success' }) |
|||
}) |
|||
}).catch(() => { |
|||
this.$message({ |
|||
type: 'info', |
|||
message: '取消输入' |
|||
}) |
|||
}) |
|||
} |
|||
} |
|||
}, |
|||
// 作废数据 |
|||
renwuZf() { |
|||
if (this.multipleSelection.length === 0) { |
|||
this.$message({ message: '请在列表选择要作废的数据。', type: 'warning' }) |
|||
return false |
|||
} |
|||
let bjdIds = '' |
|||
for (let i = 0; i < this.multipleSelection.length; i++) { |
|||
if (i === 0) { |
|||
bjdIds = this.multipleSelection[i].bjdId |
|||
} else { |
|||
bjdIds = bjdIds + ',' + this.multipleSelection[i].bjdId |
|||
} |
|||
} |
|||
this.$prompt('共选择了' + this.multipleSelection.length + '台设备进行作废,请输入作废原因!', '提示', { |
|||
inputType: 'textarea', |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消' |
|||
}).then(({ value }) => { |
|||
if (value === null) { |
|||
this.$message({ message: '请填写作废原因!', type: 'warning' }) |
|||
return false |
|||
} |
|||
this.apibjd({ |
|||
url: '/bjd/updBjdToZfByRw', |
|||
method: 'get', |
|||
params: { |
|||
bjdIds: this.$refs.list.selection.map(rw => { |
|||
return rw.bjdId |
|||
}).join(','), |
|||
reason: value |
|||
} |
|||
}).then(data => { |
|||
this.getList() |
|||
if (data.count > 0) { |
|||
this.$alert(data.count + '条任务作废成功!', '确认信息', { |
|||
confirmButtonText: '确定' |
|||
}) |
|||
} else { |
|||
this.$message({ message: '任务作废失败!', type: 'warning' }) |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
this.$message({ |
|||
type: 'info', |
|||
message: '取消作废' |
|||
}) |
|||
}) |
|||
}, |
|||
viewBjd(bjd) { |
|||
const type = '/finish' |
|||
if (bjd.jianyanleibie === 'DJ') { |
|||
this.$router.push({ path: '/bjd/bjd-dj-input/' + bjd.bjdId + '/' + bjd.shebeizhongleidaima + '/' + bjd.shebeizhongleidaima + type }) |
|||
} else { |
|||
this.$router.push({ path: '/bjd/bjd-jj-input/' + bjd.bjdId + '/' + bjd.shebeizhongleidaima + '/' + bjd.shebeizhongleidaima + type }) |
|||
} |
|||
}, |
|||
viewBjdRenwu(bjdid) { |
|||
if (this.$store.getters.username === 'shiting') { |
|||
return false |
|||
} |
|||
this.allotList = [] |
|||
this.bjdIds = bjdid |
|||
this.apibjd({ |
|||
url: '/renwu/getAllotBaseList', |
|||
method: 'post', |
|||
data: { |
|||
bjdIds: bjdid |
|||
} |
|||
}).then(data => { |
|||
this.allotList = data.list |
|||
this.allotSbzl = this.allotList[0].shebeizhongleidaima |
|||
this.dialogVisible = true |
|||
this.$nextTick(() => { |
|||
this.$refs.allotList.toggleAllSelection() |
|||
this.selection = data.list |
|||
}) |
|||
}) |
|||
}, |
|||
clearSearch() { |
|||
this.listQuery.searchRenwu = { |
|||
bjState: '2' |
|||
} |
|||
this.getList() |
|||
}, |
|||
// 表格单击选中行 getAllotListByBjdId |
|||
onRowClick(row) { |
|||
this.$refs.list.toggleRowSelection(row) |
|||
}, |
|||
// 获取选中行的bjdId |
|||
handleSelectionChange(val) { |
|||
this.multipleSelection = val |
|||
}, |
|||
onDialogRowClick(row) { |
|||
this.$refs.allotList.toggleRowSelection(row) |
|||
}, |
|||
handleDialogSelectionChange(val) { |
|||
this.selection = val |
|||
}, |
|||
// 查询检验科室 |
|||
getDepartment() { |
|||
this.api({ |
|||
url: '/department/all', |
|||
method: 'get' |
|||
}).then(data => { |
|||
this.depts = data |
|||
}) |
|||
}, |
|||
getArea() { // 查询区划 |
|||
this.api({ |
|||
url: '/area/getShiArea', |
|||
method: 'get', |
|||
params: { |
|||
shidaima: '370100' |
|||
} |
|||
}).then(data => { |
|||
this.areas = data |
|||
}) |
|||
}, |
|||
selectDepartmentUser(val) { |
|||
this.renlingren = [] |
|||
this.getUserList(val) |
|||
}, |
|||
getUserList(val) { |
|||
this.api({ |
|||
url: '/user/getUserListByDepartmentId', |
|||
method: 'get', |
|||
params: { |
|||
departmentId: val |
|||
} |
|||
}).then(data => { |
|||
this.users = data |
|||
}) |
|||
}, |
|||
openZhongjian() { |
|||
if (this.multipleSelection.length !== 1) { |
|||
this.$message({ message: '请在列表选择要进行现场检验的设备,只允许单台操作。', type: 'warning' }) |
|||
return false |
|||
} |
|||
if (this.multipleSelection[0].zhongjianriqi) { |
|||
this.bjdZhongjian.xianchangriqi = this.multipleSelection[0].zhongjianriqi |
|||
} else { |
|||
this.bjdZhongjian.xianchangriqi = new Date() |
|||
} |
|||
this.bjdZhongjian.xianchangbeizhu = this.multipleSelection[0].zhongjianBeizhu |
|||
this.dialogXianchangVisible = true |
|||
}, |
|||
openBaseZhongjian() { |
|||
if (this.multipleSelection.length !== 1) { |
|||
this.$message({ message: '请在列表选择要操作的数据,只能选择单台设备。', type: 'warning' }) |
|||
return false |
|||
} |
|||
this.apibjd({ |
|||
url: '/renwu/getAllotBaseList', |
|||
method: 'post', |
|||
data: { |
|||
bjdIds: this.multipleSelection[0].bjdId |
|||
} |
|||
}).then(data => { |
|||
this.allotList = data.list |
|||
this.dialogXcjyVisible = true |
|||
}) |
|||
}, |
|||
clearBaseZhongjian() { |
|||
if (this.multipleSelection.length !== 1) { |
|||
this.$message({ message: '请在列表选择要操作的数据,只能选择单台设备。', type: 'warning' }) |
|||
return false |
|||
} |
|||
this.apibjd({ |
|||
url: '/renwu/clearZhongjian', |
|||
method: 'get', |
|||
params: { |
|||
bjdId: this.multipleSelection[0].bjdId |
|||
} |
|||
}).then(data => { |
|||
if (data === '清除成功!') { |
|||
this.getList() |
|||
} |
|||
}) |
|||
}, |
|||
clearShenqingriqi(index) { |
|||
this.apibjd({ |
|||
url: '/renwu/clearShenqingriqi', |
|||
method: 'get', |
|||
params: { |
|||
renwuId: this.allotList[index].id |
|||
} |
|||
}).then(data => { |
|||
if (data === '清除成功!') { |
|||
this.allotList[index].shenqingxianchangriqi = null |
|||
} |
|||
}) |
|||
}, |
|||
closeDialog() { |
|||
this.renlingren = [] |
|||
this.departmentId = this.$store.getters.departmentId |
|||
this.users = this.getUserList(this.departmentId) |
|||
}, |
|||
allotRenwu() { |
|||
this.btnClick = true |
|||
if (this.selection.length === 0) { |
|||
this.$message({ message: '请选择要分配的数据。', type: 'warning' }) |
|||
return false |
|||
} |
|||
if (this.renlingren.length > 0) { |
|||
for (let i = 0; i < this.teams.length; i++) { |
|||
if (this.renwudan.teamId === this.teams[i].id) { |
|||
this.renwudan.teamName = this.teams[i].name |
|||
break |
|||
} |
|||
} |
|||
for (let i = 0; i < this.depts.length; i++) { |
|||
if (this.departmentId === this.depts[i].id) { |
|||
this.renwudan.departmentName = this.depts[i].name |
|||
break |
|||
} |
|||
} |
|||
this.apibjd({ |
|||
url: '/renwu/completeAllot', |
|||
method: 'post', |
|||
data: { |
|||
renwuList: this.selection, |
|||
renlingren: this.renlingren, |
|||
renwudan: this.renwudan, |
|||
bjdids: this.bjdIds |
|||
} |
|||
}).then(() => { |
|||
this.multipleSelection = [] |
|||
// 刷新分配任务列表 |
|||
this.getList() |
|||
// 刷新我的任务列表 |
|||
Utils.$emit('task-list') |
|||
this.$message({ message: '分配成功。', type: 'success' }) |
|||
this.dialogVisible = false |
|||
this.showLoading = true |
|||
}) |
|||
} else { |
|||
this.$message({ message: '请选择要分配的人员。', type: 'warning' }) |
|||
return false |
|||
} |
|||
}, |
|||
tijiaoJianyan() { |
|||
this.bjdZhongjian.bjdid = this.multipleSelection[0].bjdId |
|||
this.apibjd({ |
|||
url: '/bjd/updBjdEndState', |
|||
method: 'post', |
|||
data: this.bjdZhongjian |
|||
}).then(data => { |
|||
this.$message.success('添加成功。') |
|||
this.getList() |
|||
this.dialogXianchangVisible = false |
|||
}) |
|||
}, |
|||
tijiaoJianyanBf() { |
|||
if (this.selection.length === 0) { |
|||
this.$message({ message: '请在列表选择要操作的数据。', type: 'warning' }) |
|||
return false |
|||
} |
|||
this.bjdZhongjian.bjdid = this.multipleSelection[0].bjdId |
|||
this.bjdZhongjian.renwuIds = this.$refs.allotList.selection.map(rw => { |
|||
return rw.id |
|||
}).join(',') |
|||
this.apibjd({ |
|||
url: '/renwu/updBjdEndState', |
|||
method: 'post', |
|||
data: this.bjdZhongjian |
|||
}).then(data => { |
|||
this.$message.success('添加成功。') |
|||
this.getList() |
|||
this.dialogXcjyVisible = false |
|||
}) |
|||
}, |
|||
getTeamList(departmentId) { // 获取对应组 |
|||
this.apibjd({ |
|||
url: '/team/getTeamList', |
|||
method: 'get', |
|||
params: { departmentId } |
|||
}).then(data => { |
|||
this.teams = data |
|||
}) |
|||
}, |
|||
selectTeamUser(val) { |
|||
for (let i = 0; i < this.teams.length; i++) { |
|||
if (this.teams[i].id === val) { |
|||
this.renlingren = JSON.parse(this.teams[i].renyuans) |
|||
break |
|||
} |
|||
} |
|||
}, |
|||
setWanchengqixian() { |
|||
var date = new Date(this.renwudan.yuejianriqi) |
|||
date.setMonth(date.getMonth() + 1) |
|||
this.$set(this.renwudan, 'wanchengqixian', date) |
|||
}, |
|||
tableRowZhongjian({ row, rowIndex }) { |
|||
if (row.zhongjianState === 1) { |
|||
return 'qiyezhongjian-row' |
|||
} else if (row.zhongjianState === 2) { |
|||
return 'keshizhongjian-row' |
|||
} |
|||
return '' |
|||
}, |
|||
tableRowBfZhongjian({ row, rowIndex }) { |
|||
if (row.shenqingxianchangriqi !== null) { |
|||
return 'xianchangriqi-row' |
|||
} |
|||
return '' |
|||
}, |
|||
sortChange(column) { |
|||
if (column.order !== null) { |
|||
this.listQuery.orderBy = column.prop + ' ' |
|||
this.listQuery.orderBy += column.order.replace('ending', '') |
|||
} else { |
|||
this.listQuery.orderBy = 'shouliriqi desc' |
|||
} |
|||
this.getList() |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style> |
|||
/** 允许终检 */ |
|||
.el-table .qiyezhongjian-row { |
|||
color: #0831e4; |
|||
} |
|||
.el-table .keshizhongjian-row { |
|||
color: #da6b83; |
|||
} |
|||
.el-table .xianchangriqi-row { |
|||
color: #66e41e; |
|||
} |
|||
</style> |
File diff suppressed because it is too large
Loading…
Reference in new issue