| | |
| | | '0') }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="job_info_num" label="工单编号" width="160"> |
| | | <el-table-column prop="job_info_num" label="工单编号" width="170"> |
| | | <template #default="scope"> |
| | | <el-tooltip-copy :content="scope.row.job_info_num" :showCopyText="true"> |
| | | {{scope.row.job_info_num}} |
| | |
| | | </el-tooltip-copy> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="dept_name" label="工单状态"> |
| | | <template #default="scope"> |
| | | <el-tag :type="getStatusTagType(scope.row.status)">{{ getOrderStatus(scope.row.status) }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="dept_name" label="所属单位" show-overflow-tooltip/> |
| | | <el-table-column prop="create_time" label="创建时间" show-overflow-tooltip/> |
| | | <el-table-column prop="job_num" label="已执行次数" show-overflow-tooltip align="center" /> |
| | | <el-table-column prop="job_num" label="已执行次数" width="90" align="center" /> |
| | | <el-table-column prop="content" label="工单内容" show-overflow-tooltip align="center" /> |
| | | <el-table-column prop="wayline_name" label="关联航线" show-overflow-tooltip /> |
| | | <el-table-column prop="ai_type_str" label="关联算法" width="200" align="center" /> |
| | | <el-table-column prop="device_names" label="关联机巢" width="200" align="center" /> |
| | | <el-table-column prop="creator_name" label="创建人" align="center" show-overflow-tooltip /> |
| | | <el-table-column prop="cycle_time_value" label="工单周期频次" align="center" show-overflow-tooltip /> |
| | | <el-table-column label="操作" width="200" align="center"> |
| | | <el-table-column label="操作" width="200" fixed="right" align="center"> |
| | | <template #default="scope"> |
| | | {{scope.row.status}} |
| | | <template v-if="scope.row.status === 1"> |
| | | <el-button type="text" icon="el-icon-view" v-if="permission.order_log_review" @click="handleCheckDetail(scope.row, '工单审核')">审核</el-button> |
| | | <!--待审核状态--> |
| | | <el-button type="text" icon="el-icon-warning" v-if="permission.order_log_recall" @click="revokeOrder(scope.row.id)">撤回 |
| | | </el-button> |
| | | <el-button type="text" icon="el-icon-warning" v-if="permission.order_log_recall" @click="revokeOrder(scope.row.id)">撤回</el-button> |
| | | <el-button type="text" icon="el-icon-view" @click="handleViewDetail(scope.row, '工单详情')">详情</el-button> |
| | | </template> |
| | | <!--已驳回--> |
| | | <template v-if="scope.row.status === 2"> |
| | | <el-button type="text" icon="el-icon-warning" @click="rejectReason(scope.row.id)">驳回原因</el-button> |
| | | <el-button type="text" icon="el-icon-view" v-if="userInfo.user_id === scope.row.create_user" @click="handleViewDetail(scope.row, '工单编辑')">编辑</el-button> |
| | | <el-button type="text" icon="el-icon-view" v-else @click="handleViewDetail(scope.row, '工单详情')">详情</el-button> |
| | | <el-button type="text" icon="el-icon-warning" @click="rejectReason(scope.row.id, scope.row)">驳回原因</el-button> |
| | | <el-button type="text" icon="el-icon-view" @click="handleViewDetail(scope.row, '工单详情')">详情</el-button> |
| | | <!-- <el-button type="text" icon="el-icon-view" v-if="userInfo.user_id === scope.row.create_user" @click="handleViewDetail(scope.row, '工单编辑')">编辑</el-button>--> |
| | | <!-- <el-button type="text" icon="el-icon-view" v-else @click="handleViewDetail(scope.row, '工单详情')">详情</el-button>--> |
| | | </template> |
| | | <!-- 已通过 --> |
| | | <template v-if="scope.row.status === 3"> |
| | | <el-button type="text" icon="el-icon-view" @click="handleViewDetail(scope.row, '工单详情')">详情</el-button> |
| | | </template> |
| | | <!--草稿--> |
| | | <template v-if="scope.row.status === 0"> |
| | | <el-button type="text" icon="el-icon-edit" @click="handleViewDetail(scope.row, '工单编辑')">编辑</el-button> |
| | | <el-button type="text" icon="el-icon-position" @click="userPublishPush(scope.row.id)">发布</el-button> |
| | | <el-button type="text" icon="el-icon-delete" @click="deleteOrder(scope.row.id)">删除</el-button> |
| | | </template> |
| | | <!-- <template v-if="scope.row.status === 0">--> |
| | | <!-- <el-button type="text" icon="el-icon-edit" @click="handleViewDetail(scope.row, '工单编辑')">编辑</el-button>--> |
| | | <!-- <el-button type="text" icon="el-icon-position" @click="userPublishPush(scope.row.id)">发布</el-button>--> |
| | | <!-- <el-button type="text" icon="el-icon-delete" @click="deleteOrder(scope.row.id)">删除</el-button>--> |
| | | <!-- </template>--> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | const isShowAddEditDetails = ref(false) |
| | | |
| | | const activeTab = ref('all') |
| | | // tab切换 |
| | | function handleTabChange (tab) { |
| | | |
| | | let tabsList = ref([ |
| | | // { label: '我的工单', name: 'my_order', value: null, count: 0 }, |
| | | // { label: '全部工单', name: 'all', value: null, count: 0 }, |
| | | // { label: '待审核', name: 'WAIT_AUDIT', value: 1, count: 0 }, |
| | | // { label: '已驳回', name: 'REJECTED', value: 2, count: 0 }, |
| | | // { label: '已通过', name: 'PASS', value: 3, count: 0 }, |
| | | // { label: '草稿', name: 'DRAFT', value: 0, count: 0 } |
| | | ]) |
| | | function filteredTabs () { |
| | | if (permission?.value.orderLog_tab_allOrders) { |
| | | tabsList.value.push({ label: '全部工单', name: 'all', value: null, count: 0 }) |
| | | } |
| | | if (permission?.value.orderLog_tab_pending) { |
| | | tabsList.value.push({ label: '待审核', name: 'WAIT_AUDIT', value: 1, count: 0 }) |
| | | } |
| | | if (permission?.value.orderLog_tab_reject) { |
| | | tabsList.value.push({ label: '已驳回', name: 'REJECTED', value: 2, count: 0 }) |
| | | } |
| | | if (permission?.value.orderLog_tab_pass) { |
| | | tabsList.value.push({ label: '已通过', name: 'PASS', value: 3, count: 0 }) |
| | | } |
| | | activeTab.value = tabsList.value[0].name |
| | | console.log('8878797', tabsList.value) |
| | | // tabsList.value |
| | | // .map(tab => { |
| | | // if (tab.name === 'all') { |
| | | // return { ...tab, isShow: permission?.value.orderLog_tab_allOrders } |
| | | // } |
| | | // if (tab.name === 'WAIT_AUDIT') { |
| | | // return { ...tab, isShow: permission?.value.orderLog_tab_pending } |
| | | // } |
| | | // if (tab.name === 'REJECTED') { |
| | | // return { ...tab, isShow: permission?.value.orderLog_tab_reject } |
| | | // } |
| | | // if (tab.name === 'PASS') { |
| | | // return { ...tab, isShow: permission?.value.orderLog_tab_pass } |
| | | // } |
| | | // // return { ...tab, isShow: true } |
| | | // }) |
| | | // .filter(tab => tab.isShow) |
| | | } |
| | | |
| | | let tabsList = ref([ |
| | | { label: '全部工单', name: 'all', value: null, count: 0 }, |
| | | { label: '待审核', name: 'WAIT_AUDIT', value: 1, count: 0 }, |
| | | { label: '已驳回', name: 'REJECTED', value: 2, count: 0 }, |
| | | { label: '已通过', name: 'PASS', value: 3, count: 0 }, |
| | | { label: '草稿', name: 'DRAFT', value: 0, count: 0 } |
| | | ]) |
| | | // tab切换 |
| | | function handleTabChange (tab) { |
| | | activeTab.value = tab.paneName |
| | | orderListParams.status = '' |
| | | if (tab.paneName === 'WAIT_AUDIT') { |
| | | orderListParams.status = '1' |
| | | } else if (tab.paneName === 'REJECTED') { |
| | | orderListParams.status = '2' |
| | | } else if (tab.paneName === 'PASS') { |
| | | orderListParams.status = '3' |
| | | } else if (tab.paneName === 'DRAFT') { |
| | | orderListParams.status = '0' |
| | | } |
| | | refreshGetOrderList() |
| | | } |
| | | |
| | | // 更新统计数 |
| | | async function updateGlobalCounts() { |
| | | let res = await jobStatusNum() |
| | | res.data.data.forEach(item => { |
| | | const tab = tabsList.value.find(t => t.name === item.dict_key) |
| | | if (tab) { |
| | | tab.count = item.num |
| | | } |
| | | }) |
| | | } |
| | | |
| | | const total = ref(0) |
| | | const orderListParams = reactive({ |
| | | current: 1, |
| | | size: 10, |
| | | searchParams: {}, |
| | | status: '' |
| | | }) |
| | | |
| | | const orderListTable = ref([]) |
| | | function getTableList() { |
| | | const apiParams = { |
| | | ...cloneDeep(orderListParams), |
| | | searchParams: { |
| | | ...cloneDeep(orderListParams.searchParams) |
| | | }, |
| | | ...cloneDeep(orderListParams.searchParams) |
| | | } |
| | | getList(apiParams).then(res => { |
| | | orderListTable.value = res.data.data.records |
| | | total.value = res.data.data.total |
| | | // updateGlobalCounts() |
| | | }) |
| | | } |
| | | |
| | |
| | | const searchClick = params => { |
| | | orderListParams.current = 1 |
| | | orderListParams.size = 10 |
| | | console.log('333', params) |
| | | orderListParams.searchParams = params |
| | | getTableList() |
| | | } |
| | |
| | | getTableList() |
| | | } |
| | | |
| | | function getOrderStatus (status) { |
| | | const statusTextMap = { |
| | | // 0: '草稿', |
| | | 1: '待审核', |
| | | 2: '已驳回', |
| | | 3: '已通过' |
| | | } |
| | | return statusTextMap[status] || '未知状态' |
| | | } |
| | | function getStatusTagType (status) { |
| | | const statusMap = { |
| | | 1: 'warning', |
| | | 2: 'info', |
| | | 3: 'primary', |
| | | 4: 'success', |
| | | 5: 'danger' |
| | | } |
| | | return statusMap[status] || 'info' |
| | | } |
| | | // 新增按钮 和 导出按钮 |
| | | // function hasAddBtnPermission () { |
| | | // return permission && permission?.value.order_log_add |
| | | // } |
| | | |
| | | // 新建工单、编辑、详情 |
| | | const txtTitle = ref('新建工单') |
| | | const rowObj = ref({}) |
| | | provide('txtTitle', txtTitle) |
| | | provide('rowObj', rowObj) |
| | | function handleAddOrder() { |
| | | txtTitle.value = '新建工单' |
| | | isShowAddEditDetails.value = true |
| | | } |
| | | // 详情、编辑 |
| | | function handleViewDetail(row, txt) { |
| | | rowObj.value = row |
| | | txtTitle.value = txt |
| | | isShowAddEditDetails.value = true |
| | | } |
| | |
| | | // 撤回工单 |
| | | async function revokeOrder(id) { |
| | | try { |
| | | await ElMessageBox.confirm('确定撤回到草稿箱?', '是否撤回', { |
| | | await ElMessageBox.confirm('撤回会删除本工单,需重新提交?', '是否撤回', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }) |
| | | // 用户点击确定,执行撤回操作 |
| | | await orderLogRecall(id) |
| | | // await orderLogRecall(id) |
| | | await deleteOrderLog(id) |
| | | // 显示成功消息 |
| | | ElMessage.success('撤回成功') |
| | | // 触发搜索刷新 |
| | |
| | | } |
| | | |
| | | // 驳回原因 |
| | | async function rejectReason(id) { |
| | | async function rejectReason(id, row) { |
| | | try { |
| | | const res = await orderLogDetails(id) |
| | | const data = res.data.data |
| | |
| | | |
| | | // 用户点击确定后的逻辑 TODO |
| | | // form.value = { ...res.data.data } |
| | | // handleViewDetail(data) |
| | | handleViewDetail(row, userInfo.value.user_id === row.create_user ? '工单编辑':'工单详情') |
| | | |
| | | } catch (error) { |
| | | // 用户点击取消,不执行任何操作 |
| | |
| | | } |
| | | |
| | | onMounted(() => { |
| | | filteredTabs() |
| | | getTableList() |
| | | updateGlobalCounts() |
| | | }) |
| | | </script> |
| | | |