|
|
@@ -0,0 +1,256 @@
|
|
|
+<template>
|
|
|
+ <el-dialog :visible.sync="visible" title="转派工单" width="60%">
|
|
|
+ <div class="sparepart-apply">
|
|
|
+ <div class="select-box">
|
|
|
+ <el-form label-width="80px">
|
|
|
+ <el-row :gutter="40">
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-form-item label="工单单号">
|
|
|
+ <el-input
|
|
|
+ v-model="row.workOrderCode"
|
|
|
+ size="small"
|
|
|
+ disabled
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-form-item label="部门">
|
|
|
+ <deptSelect
|
|
|
+ v-model="deptCode"
|
|
|
+ @changeGroup="deptClick"
|
|
|
+ />
|
|
|
+ <!-- <selectTree
|
|
|
+ ref="treeDept"
|
|
|
+ class="form-input"
|
|
|
+ :options="treeList"
|
|
|
+ size="small"
|
|
|
+ :props="{
|
|
|
+ value: 'code',
|
|
|
+ label: 'name',
|
|
|
+ children: 'children',
|
|
|
+ }"
|
|
|
+ @getValue="deptClick"
|
|
|
+ /> -->
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-form-item label="" label-width="10px">
|
|
|
+ <el-input
|
|
|
+ v-model="name"
|
|
|
+ size="small"
|
|
|
+ placeholder="搜索姓名"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="" label-width="10px">
|
|
|
+ <el-button
|
|
|
+ @click="search"
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-search"
|
|
|
+ size="small"
|
|
|
+ >搜索</el-button>
|
|
|
+ <el-button
|
|
|
+ @click="reset"
|
|
|
+ icon="el-icon-refresh-left"
|
|
|
+ size="small"
|
|
|
+ >重置</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="data-tab">
|
|
|
+ <el-table
|
|
|
+ :data="tableData"
|
|
|
+ tooltip-effect="dark"
|
|
|
+ style="width: 100%"
|
|
|
+ stripe
|
|
|
+ highlight-current-row
|
|
|
+ @current-change="handleChange"
|
|
|
+ :header-cell-style="{ background: '#EEEEEE', border: 'none' }"
|
|
|
+ >
|
|
|
+ <el-table-column width="80px" label="序号" type="index" :index="indexMethod">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="工号" prop="jobNumber" width="200px">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="姓名" prop="name"></el-table-column>
|
|
|
+ <el-table-column label="电话" prop="phone"></el-table-column>
|
|
|
+ <el-table-column label="部门" prop="groupName" ></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="zw-table-pagebar">
|
|
|
+ <el-pagination
|
|
|
+ background
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="total"
|
|
|
+ :page-sizes="[15, 30, 50, 100, 500]"
|
|
|
+ :page-size.sync="pages.size"
|
|
|
+ :current-page.sync="pages.pageNum"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ >
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div slot="footer" class="footer">
|
|
|
+ <el-button @click="cancel">返回</el-button>
|
|
|
+ <el-button type="primary" @click="submit">提交</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ import deptSelect from '@/components/CommomSelect/dept-select.vue';
|
|
|
+ import { getUserPage } from '@/api/system/organization';
|
|
|
+export default {
|
|
|
+ components: { deptSelect },
|
|
|
+ props: {
|
|
|
+ // sourceType: {
|
|
|
+ // type: Number, //1,保养工单;2,维修工单
|
|
|
+ // required: true
|
|
|
+ // }
|
|
|
+ },
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ visible: false,
|
|
|
+ treeList:[],
|
|
|
+ pages: {
|
|
|
+ pageNum: 1,
|
|
|
+ size: 15
|
|
|
+ },
|
|
|
+ total: 0,
|
|
|
+ selectedRow: {},
|
|
|
+ deptCode:'',
|
|
|
+ executorDeptName:'',
|
|
|
+ name:'',
|
|
|
+ row: {},
|
|
|
+ tableData:[],
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async created() {
|
|
|
+ this.getUserList()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ open (row) {
|
|
|
+ this.row = row
|
|
|
+ this.name = ''
|
|
|
+ this.deptCode = ''
|
|
|
+ this.executorDeptName = ''
|
|
|
+ this.selectedRow = {}
|
|
|
+ this.visible = true
|
|
|
+ },
|
|
|
+
|
|
|
+ //重置
|
|
|
+ reset() {
|
|
|
+ this.name = ''
|
|
|
+ this.search();
|
|
|
+ },
|
|
|
+ // 搜索
|
|
|
+ search() {
|
|
|
+ this.getUserList({name:this.name})
|
|
|
+ },
|
|
|
+
|
|
|
+ deptClick(data) {
|
|
|
+ if (data){
|
|
|
+ const params = { groupId: data };
|
|
|
+ this.getUserList(params);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 获取审核人列表、巡点检人员
|
|
|
+ async getUserList (params) {
|
|
|
+ let data = { ...this.pages , deptCode : this.deptCode }
|
|
|
+ // 如果传了参数就是获取巡点检人员数据
|
|
|
+ if (params) {
|
|
|
+ data = Object.assign(data, params)
|
|
|
+ }
|
|
|
+ const res = await getUserPage(data);
|
|
|
+ this.tableData = res.list
|
|
|
+ this.total = res.count
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ // 表格选中行
|
|
|
+ handleChange (row) {
|
|
|
+ if(row){
|
|
|
+ this.selectedRow = row
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+ handleCurrentChange () {
|
|
|
+ this.getUserList()
|
|
|
+ },
|
|
|
+ handleSizeChange () {
|
|
|
+ this.pages.pageNum = 1
|
|
|
+ this.getUserList()
|
|
|
+ },
|
|
|
+
|
|
|
+ // 实现分页序号连贯
|
|
|
+ indexMethod (index) {
|
|
|
+ index = index + 1 + (this.pages.pageNum - 1) * this.pages.size
|
|
|
+ return index
|
|
|
+ },
|
|
|
+
|
|
|
+ async submit () {
|
|
|
+ if(this.selectedRow.id){
|
|
|
+ let params = {
|
|
|
+ executorDeptCode:this.deptCode,
|
|
|
+ executorId:this.selectedRow.userId,
|
|
|
+ workOrderId:this.row.id,
|
|
|
+ executorDeptName:this.executorDeptName,
|
|
|
+ executorName:this.selectedRow.trueName
|
|
|
+ }
|
|
|
+ const res = await workOrderSend(params)
|
|
|
+ if(res.success){
|
|
|
+ this.$message.success(`该工单成功转派给${this.selectedRow.trueName}`)
|
|
|
+ this.visible = false
|
|
|
+ this.$emit('refresh')
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ return this.$message.warning('请选择转派人员')
|
|
|
+ }
|
|
|
+ },
|
|
|
+ cancel () {
|
|
|
+ this.visible = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.sparepart-apply {
|
|
|
+ min-height: 40vh;
|
|
|
+ .select-box {
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .material-item + .material-item {
|
|
|
+ margin-top: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.flex-between {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding-right: 20%;
|
|
|
+}
|
|
|
+
|
|
|
+.list-box {
|
|
|
+ max-height: 60vh;
|
|
|
+ overflow-y: auto;
|
|
|
+ overflow-x: hidden;
|
|
|
+}
|
|
|
+
|
|
|
+.footer {
|
|
|
+ padding: 10px;
|
|
|
+ text-align: right;
|
|
|
+ background: #fff;
|
|
|
+ display:flex;
|
|
|
+ align-items:center;
|
|
|
+ justify-content: center;
|
|
|
+}
|
|
|
+</style>
|