| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367 |
- <template>
- <el-dialog
- :visible.sync="visible"
- title="转派工单"
- width="60%"
- :modal="false"
- >
- <div class="sparepart-apply">
- <el-tabs
- v-model="tabValue"
- class="demo-monitor-tabs"
- @tab-click="handleClickTab"
- >
- <el-tab-pane label="执行人" name="1" />
- <!-- 非完成报工不显示辅助人 -->
- <el-tab-pane
- v-if="entranceValue == 'transfer'"
- label="辅助人"
- name="2"
- />
- </el-tabs>
- <div class="select-box">
- <el-form label-width="80px">
- <el-row :gutter="24">
- <el-col :span="12">
- <el-form-item label="工单单号">
- <el-input v-model="row.code" disabled></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="部门">
- <deptSelect v-model="groupId" @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="12">
- <el-form-item label="" label-width="10px">
- <el-input v-model="name" placeholder="搜索姓名"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="12" style="text-align: right">
- <el-form-item label="" label-width="10px">
- <el-button @click="search" type="primary" icon="el-icon-search"
- >搜索</el-button
- >
- <el-button @click="reset" icon="el-icon-refresh-left"
- >重置</el-button
- >
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- </div>
- <div class="data-tab">
- <ele-pro-table
- ref="tableRef"
- row-key="id"
- :columns="columns"
- :datasource="datasource"
- @select-all="handleSelectAll"
- @selection-change="handleSelectionChange"
- cache-key="redeployOther"
- @done="handleDone"
- :header-cell-class-name="headerCellClassName"
- >
- </ele-pro-table>
- </div>
- <div slot="footer" class="footer">
- <el-button @click="cancel">返回</el-button>
- <el-button
- v-if="entranceValue == 'transfer'"
- :loading="btnLoading"
- type="primary"
- @click="submit"
- >提交</el-button
- >
- <el-button
- v-if="entranceValue == 'noFinishSubmit'"
- :loading="btnLoading"
- type="primary"
- @click="confirm"
- >确认</el-button
- >
- </div>
- </div>
- </el-dialog>
- </template>
- <script>
- import deptSelect from '@/components/CommomSelect/dept-select.vue';
- import {
- workOrderRotate,
- addAssists
- } from '@/api/maintenance/patrol_maintenance';
- import { getUserPage } from '@/api/system/organization';
- export default {
- components: { deptSelect },
- props: {
- // sourceType: {
- // type: Number, //1,保养工单;2,维修工单
- // required: true
- // }
- },
- data() {
- return {
- btnLoading: false,
- visible: false,
- treeList: [],
- pages: {
- pageNum: 1,
- size: 15
- },
- total: 0,
- selectedRow: {},
- selectedRowData: [],
- groupId: '',
- executorDeptName: '',
- name: '',
- row: {},
- columns: [
- {
- width: 45,
- type: 'selection',
- columnKey: 'selection',
- align: 'center'
- // selectable: (row, index) => {
- // return row.id !== this.row.executeUserId;
- // }
- },
- {
- columnKey: 'index',
- label: '序号',
- type: 'index',
- width: 55,
- align: 'center',
- showOverflowTooltip: true,
- fixed: 'left'
- },
- {
- prop: 'jobNumber',
- label: '工号',
- align: 'center',
- showOverflowTooltip: true
- },
- {
- prop: 'name',
- label: '姓名',
- align: 'center',
- showOverflowTooltip: true
- },
- {
- prop: 'phone',
- label: '电话',
- align: 'center',
- showOverflowTooltip: true
- },
- {
- prop: 'groupName',
- label: '部门',
- align: 'center',
- showOverflowTooltip: true
- }
- ],
- tabValue: '',
- selectedRowDataId: '',
- tableData: [],
- arry: [],
- entranceValue: ''
- };
- },
- created() {
- this.getList();
- },
- methods: {
- async getList() {
- const data = await getUserPage({
- pageNum: 1,
- size: -1,
- groupId: '',
- name: '',
- groupId: this.groupId
- });
- this.tableData = data.list;
- },
- handleClickTab(tab, event) {
- this.selectedRow = {};
- this.selectedRowData = [];
- this.tabValue = tab.name;
- this.$refs.tableRef.clearSelection();
- },
- open(row, val) {
- this.entranceValue = val;
- if (val == 'noFinishSubmit') {
- this.tabValue = '1';
- }
- if (val == 'transfer') {
- this.tabValue = '2';
- if (row.assists) {
- this.arry = row.assists.split(',');
- }
- }
- this.row = row;
- this.name = '';
- this.groupId = '';
- this.executorDeptName = '';
- this.visible = true;
- this.$refs.tableRef.clearSelection();
- },
- handleDone() {
- console.log('handDone');
- // this.$nextTick(() => {
- // this.arry.forEach((item) => {
- // this.tableData.find((item2) => {
- // if (item == item2.id) {
- // console.log(item2, 'item2');
- // this.$refs.tableRef.toggleRowSelection(item2, true);
- // }
- // });
- // });
- // });
- },
- //重置
- reset() {
- this.name = '';
- this.search();
- },
- // 搜索
- search() {
- this.$refs.tableRef.reload();
- },
- deptClick(data) {
- if (data) {
- this.$refs.tableRef.reload();
- }
- },
- // 获取审核人列表、巡点检人员
- async datasource({ page, limit, where, order }) {
- this.selectedRow = {};
- // 如果传了参数就是获取巡点检人员数据
- return getUserPage({
- pageNum: page,
- size: limit,
- ...where,
- groupId: this.groupId,
- name: this.name
- });
- },
- handleSelectAll(selection) {
- this.$refs.tableRef.clearSelection();
- },
- handleSelectionChange(row) {
- if (this.tabValue == '1') {
- if (row.length > 1) {
- this.$refs.tableRef.clearSelection();
- this.$refs.tableRef.toggleRowSelection(row.pop());
- }
- this.selectedRow = row[0];
- } else {
- this.selectedRowData = row;
- let arr = row.map((item) => {
- return item.id;
- });
- this.selectedRowDataId = arr.toString();
- }
- },
- headerCellClassName({ columnIndex }) {
- // 如果是第一列(通常是全选框),则返回自定义的class名
- if (columnIndex === 0) {
- return 'hide-selection-checkbox';
- }
- return '';
- },
- async submit() {
- if (this.tabValue == '1') {
- if (this.selectedRow.id) {
- this.btnLoading = true;
- let params = {
- acceptUserId: this.selectedRow.id,
- workOrderId: this.row.id
- };
- workOrderRotate(params).then(() => {
- this.$message.success(`该工单成功转派给${this.selectedRow.name}`);
- this.visible = false;
- this.$emit('refresh');
- this.btnLoading = false;
- });
- } else {
- return this.$message.warning('请选择转派人员');
- }
- } else {
- this.btnLoading = true;
- let params = {
- acceptUserId: this.selectedRowDataId,
- workOrderId: this.row.id
- };
- addAssists(params).then(() => {
- this.visible = false;
- this.$emit('refresh');
- this.btnLoading = false;
- });
- }
- },
- confirm() {
- this.visible = false;
- this.$emit('confirm', this.selectedRow.id);
- },
- cancel() {
- this.tabValue = '1';
- this.selectedRow = {};
- this.selectedRowData = [];
- this.visible = false;
- }
- }
- };
- </script>
- <style lang="scss" scoped>
- .sparepart-apply {
- min-height: 40vh;
- .select-box {
- padding: 10px 0;
- }
- .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;
- }
- ::v-deep .hide-selection-checkbox .cell .el-checkbox {
- visibility: hidden !important;
- }
- </style>
|