车间能级提升-智能设备管理系统
zhuguifei
2025-03-10 6648e74a007254e167c5508de5d25402cd4bb63b
eims-ui/apps/web-antd/src/views/eims/repair-res/index.vue
@@ -12,12 +12,16 @@
import { Modal, Popconfirm, Space } from 'ant-design-vue';
import { useVbenVxeGrid, vxeCheckboxChecked, type VxeGridProps, vxeSortEvent } from '#/adapter/vxe-table';
import { delRepairRes, listRepairRes, repairResExport, updateRepairRes } from '#/api/eims/repair-res';
import { listRepairRecord } from '#/api/eims/repair-record';
import { delRepairRes, listRepairRes, repairResExport } from '#/api/eims/repair-res';
import { getDeptTree, userList } from '#/api/system/user';
import { REPAIR_RES_STATUS } from '#/constants/dict';
import { commonDownloadExcel } from '#/utils/file/download';
import BasisSubTable from '#/views/eims/components/basis-sub-table.vue';
import RepairRecord from '../repair-record/index.vue';
import fbPreviewDrawer from '../repair-fb/fb-preview-drawer.vue';
import repairFbDrawer from '../repair-fb/repair-fb-drawer.vue';
import { columns as repairRecordCol } from '../repair-record/data';
import { columns, querySchema } from './data';
import repairResDrawer from './repair-res-drawer.vue';
@@ -94,6 +98,24 @@
  connectedComponent: repairResDrawer
});
const [RepairFbDrawer, repairFbDrawerApi] = useVbenDrawer({
  connectedComponent: repairFbDrawer
});
const [FbPreviewDrawer, fbPreviewDrawerApi] = useVbenDrawer({
  connectedComponent: fbPreviewDrawer
});
function handleAddFb(record: Recordable<any>) {
  repairFbDrawerApi.setData({ resId: record.id, resCode: record.resCode, fbUser: userId, fbDept: deptId });
  repairFbDrawerApi.open();
}
function handleDetailFb(record: Recordable<any>) {
  fbPreviewDrawerApi.setData({ id: record.fbId });
  fbPreviewDrawerApi.open();
}
function handleAdd() {
  repairResDrawerApi.setData({ resUser: userId, resDept: deptId });
  repairResDrawerApi.open();
@@ -111,18 +133,22 @@
const { hasAccessByRoles } = useAccess();
const isSuperAdmin = computed(() => hasAccessByRoles(['superadmin']));
const isLeader = computed(() => hasAccessByRoles(['leader']));
function pingjiaAdd(row: any) {
  return (isSuperAdmin.value || isLeader.value || row.reqUser === userId) && row.status === REPAIR_RES_STATUS.WANCHENG && !row.fbId;
}
function pingjiaDetail(row: any) {
  return (isSuperAdmin.value || isLeader.value || row.reqUser === userId) && row.status === REPAIR_RES_STATUS.WANCHENG && row.fbId;
}
function weixiu(row: any) {
  return (isSuperAdmin.value || row.resUser === userId) && row.status === REPAIR_RES_STATUS.YIJIEDAN;
  return (isSuperAdmin.value || isLeader.value || row.resUser === userId) && row.status === REPAIR_RES_STATUS.YIJIEDAN;
}
function wancheng(row: any) {
  return (isSuperAdmin.value || row.resUser === userId) && row.status === REPAIR_RES_STATUS.WEIXIU;
}
async function handleRepairStatus(record: Recordable<any>, status: string) {
  record.status = status;
  handleConfirm(record);
  return (isSuperAdmin.value || isLeader.value || row.resUser === userId) && row.status === REPAIR_RES_STATUS.WEIXIU;
}
async function handleDelete(row: Recordable<any>) {
@@ -148,15 +174,6 @@
  commonDownloadExcel(repairResExport, '维修工单记录', tableApi.formApi.form.values, {
    fieldMappingTime: formOptions.fieldMappingTime
  });
}
async function handleConfirm(data: any) {
  try {
    await updateRepairRes(data);
  } catch (error) {
    console.error(error);
  } finally {
  }
}
onMounted(async () => {
@@ -255,6 +272,12 @@
        <template #action="{ row }">
          <Space>
            <ghost-button v-if="pingjiaAdd(row)" class="btn-success" v-access:code="['eims:repairRes:edit']" @click.stop="handleAddFb(row)">
              评价
            </ghost-button>
            <ghost-button v-if="pingjiaDetail(row)" class="btn-success" v-access:code="['eims:repairRes:edit']" @click.stop="handleDetailFb(row)">
              阅评
            </ghost-button>
            <ghost-button
              v-if="weixiu(row)"
              class="btn-success"
@@ -284,8 +307,10 @@
          </Space>
        </template>
      </BasicTable>
      <RepairRecord :res-id="resId" class="h-1/3" table-title="维修记录" />
      <BasisSubTable :columns="repairRecordCol" :list-api="listRepairRecord" :req-value="resId" class="h-1/3" req-key="resId" title="操作记录" />
    </div>
    <RepairResDrawer @reload="tableApi.query()" />
    <RepairFbDrawer @reload="tableApi.query()" />
    <FbPreviewDrawer />
  </Page>
</template>