Compare commits
4 Commits
cf7a8e9cd6
...
d80a5983d4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d80a5983d4 | ||
|
|
0c9721f4c9 | ||
|
|
44e98d2d8b | ||
|
|
32036b1160 |
@ -9,10 +9,10 @@ VITE_APP_ENV = 'development'
|
|||||||
#VITE_APP_BASE_API = 'http://192.168.12.4:8888/api'
|
#VITE_APP_BASE_API = 'http://192.168.12.4:8888/api'
|
||||||
#VITE_APP_BASE_API = 'http://192.168.5.14:9100/gateway'
|
#VITE_APP_BASE_API = 'http://192.168.5.14:9100/gateway'
|
||||||
|
|
||||||
VITE_APP_BASE_API = 'http://localhost/api'
|
#VITE_APP_BASE_API = 'http://localhost/api'
|
||||||
#VITE_APP_BASE_API = 'http://localhost:9100/gateway'
|
#VITE_APP_BASE_API = 'http://localhost:9100/gateway'
|
||||||
|
|
||||||
#VITE_APP_BASE_API = '/dev-api'
|
VITE_APP_BASE_API = '/api'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -23,7 +23,7 @@ export function editDrawing(data:any) {
|
|||||||
//列表
|
//列表
|
||||||
export function drawinglist(params:any) {
|
export function drawinglist(params:any) {
|
||||||
return request({
|
return request({
|
||||||
url: `/biz/ncCode/page`,
|
url: `/biz/drawingFile/page`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
@ -45,3 +45,45 @@ export function deleteDrawing(ids:any) {
|
|||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//生成图纸编号
|
||||||
|
export function generateDFCode() {
|
||||||
|
return request({
|
||||||
|
url: `/biz/drawingFile/generateDFCode`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//导出
|
||||||
|
export function exportdraFile(params:any) {
|
||||||
|
return request({
|
||||||
|
url: `biz/drawingFile/export`,
|
||||||
|
method: 'get',
|
||||||
|
responseType: 'blob',
|
||||||
|
params
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//任务树
|
||||||
|
export function opertree() {
|
||||||
|
return request({
|
||||||
|
url: `biz/ncCode/operationTree`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//查询已上传文件 单文件
|
||||||
|
export function filelist(fileId:any) {
|
||||||
|
return request({
|
||||||
|
url: `sys/file/${fileId}`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//查询已上传文件 多文件
|
||||||
|
export function multifilelist(fileId:any) {
|
||||||
|
return request({
|
||||||
|
url: `sys/file/getFile/${fileId}`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@ -97,7 +97,7 @@ export function exportNccode(params:any) {
|
|||||||
return request({
|
return request({
|
||||||
url: `biz/ncCode/export`,
|
url: `biz/ncCode/export`,
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params,
|
responseType: 'blob',
|
||||||
responseType: 'blob'
|
params
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import axios, { type AxiosInstance, type AxiosRequestConfig, type AxiosResponse } from 'axios'
|
import axios, { type AxiosInstance, type AxiosRequestConfig, type AxiosResponse } from 'axios'
|
||||||
import { useUserStore } from '@/stores/user'
|
import { useUserStore } from '@/stores/user'
|
||||||
|
|
||||||
// const BASE_API = import.meta.env.VITE_APP_BASE_API
|
const BASE_API = import.meta.env.VITE_APP_BASE_API
|
||||||
|
|
||||||
// API响应结构
|
// API响应结构
|
||||||
interface ApiResponse<T = any> {
|
interface ApiResponse<T = any> {
|
||||||
@ -116,7 +116,8 @@ async function decryptResponseData(data: string): Promise<any> {
|
|||||||
// 创建axios实例
|
// 创建axios实例
|
||||||
// 后端 API 统一使用 /api 前缀
|
// 后端 API 统一使用 /api 前缀
|
||||||
const service: AxiosInstance = axios.create({
|
const service: AxiosInstance = axios.create({
|
||||||
baseURL:'/api',
|
//baseURL:'/api',
|
||||||
|
baseURL:BASE_API,
|
||||||
timeout: 30000
|
timeout: 30000
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -158,7 +159,6 @@ service.interceptors.response.use(
|
|||||||
return response.data
|
return response.data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
const res = response.data
|
const res = response.data
|
||||||
|
|
||||||
if (res.code !== 200) {
|
if (res.code !== 200) {
|
||||||
|
|||||||
846
src/views/NCcode/index.vue
Normal file
846
src/views/NCcode/index.vue
Normal file
@ -0,0 +1,846 @@
|
|||||||
|
<template>
|
||||||
|
<div class="page-container">
|
||||||
|
<!-- 用户列表 -->
|
||||||
|
<n-card class="user-list-card" size="small">
|
||||||
|
<!-- 搜索表单 -->
|
||||||
|
<div class="search-form">
|
||||||
|
<n-form
|
||||||
|
inline
|
||||||
|
:model="searchForm"
|
||||||
|
label-placement="left"
|
||||||
|
>
|
||||||
|
|
||||||
|
<n-form-item label="NC代码编号">
|
||||||
|
<n-input v-model:value="searchForm.ncCode" placeholder="请输入NC代码编号" />
|
||||||
|
</n-form-item>
|
||||||
|
|
||||||
|
<n-form-item label="NC代码名称">
|
||||||
|
<n-input v-model:value="searchForm.ncName" placeholder="请输入NC代码名称" />
|
||||||
|
</n-form-item>
|
||||||
|
|
||||||
|
|
||||||
|
<n-space>
|
||||||
|
<n-button type="primary" @click="search">
|
||||||
|
<template #icon><n-icon><SearchOutline /></n-icon></template>
|
||||||
|
搜索
|
||||||
|
</n-button>
|
||||||
|
<n-button @click="reset">
|
||||||
|
<template #icon><n-icon><RefreshOutline /></n-icon></template>
|
||||||
|
重置
|
||||||
|
</n-button>
|
||||||
|
</n-space>
|
||||||
|
|
||||||
|
|
||||||
|
</n-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<n-space style="margin-bottom: 15px;">
|
||||||
|
<n-button v-if="hasPermission('biz:ncCode:add')" type="primary" @click="addhand(1)" size="small">
|
||||||
|
<template #icon>
|
||||||
|
<n-icon>
|
||||||
|
<AddOutline />
|
||||||
|
</n-icon>
|
||||||
|
</template>
|
||||||
|
新增
|
||||||
|
</n-button>
|
||||||
|
<!-- <n-button type="error" @click="delhand" size="small">
|
||||||
|
<template #icon>
|
||||||
|
<n-icon>
|
||||||
|
<ArrowDownCircleOutline />
|
||||||
|
</n-icon>
|
||||||
|
</template>
|
||||||
|
删除
|
||||||
|
</n-button> -->
|
||||||
|
<n-button v-if="hasPermission('biz:ncCode:export')" type="success" @click="handleExport" size="small">
|
||||||
|
<template #icon>
|
||||||
|
<n-icon>
|
||||||
|
<ArrowDownCircleOutline />
|
||||||
|
</n-icon>
|
||||||
|
</template>
|
||||||
|
导出
|
||||||
|
</n-button>
|
||||||
|
</n-space>
|
||||||
|
|
||||||
|
<!-- 表格 -->
|
||||||
|
<n-data-table
|
||||||
|
:columns="columns"
|
||||||
|
size="small"
|
||||||
|
striped
|
||||||
|
:data="datalist"
|
||||||
|
:bordere="false"
|
||||||
|
:single-line="false"
|
||||||
|
:loading="loading"
|
||||||
|
remote
|
||||||
|
:row-key="rowKey"
|
||||||
|
@update:checked-row-keys="handleCheck"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<div class="pagination-container" style="display: flex; justify-content: flex-end; margin-top: 12px">
|
||||||
|
<n-pagination
|
||||||
|
v-model:page="pagination.page"
|
||||||
|
v-model:page-size="pagination.pageSize"
|
||||||
|
:item-count="pagination.itemCount"
|
||||||
|
:page-sizes="[10, 20, 50, 100]"
|
||||||
|
show-size-picker
|
||||||
|
show-quick-jumper
|
||||||
|
@update:page="handlePageChange"
|
||||||
|
@update:page-size="handlePageSizeChange"
|
||||||
|
>
|
||||||
|
<template #prefix>
|
||||||
|
共 {{ pagination.itemCount }} 条
|
||||||
|
</template>
|
||||||
|
</n-pagination>
|
||||||
|
</div>
|
||||||
|
</n-card>
|
||||||
|
|
||||||
|
<n-modal
|
||||||
|
v-model:show="addModel"
|
||||||
|
:title="cztype[isstype]"
|
||||||
|
preset="card"
|
||||||
|
style="width: 600px"
|
||||||
|
:mask-closable="false"
|
||||||
|
>
|
||||||
|
|
||||||
|
<n-form
|
||||||
|
ref="addformRef"
|
||||||
|
:model="formData"
|
||||||
|
:rules="addrules"
|
||||||
|
label-placement="left"
|
||||||
|
label-width="100"
|
||||||
|
>
|
||||||
|
<n-grid :cols="1" :x-gap="24">
|
||||||
|
<n-gi>
|
||||||
|
<n-form-item path="ncCode" label="NC代码编号">
|
||||||
|
<n-input v-model:value="formData.ncCode" placeholder="自动生成" disabled />
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi>
|
||||||
|
<n-form-item path="ncName" label="NC代码名称">
|
||||||
|
<n-input v-model:value="formData.ncName" placeholder="请输入NC代码名称" />
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi>
|
||||||
|
<n-form-item label="状态">
|
||||||
|
<n-radio-group v-model:value="formData.status" :default-value="1" name="radiogroup">
|
||||||
|
<n-space>
|
||||||
|
<n-radio :value="1">
|
||||||
|
启用
|
||||||
|
</n-radio>
|
||||||
|
<n-radio :value="0">
|
||||||
|
禁用
|
||||||
|
</n-radio>
|
||||||
|
</n-space>
|
||||||
|
</n-radio-group>
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi>
|
||||||
|
<!--type="textarea"-->
|
||||||
|
<n-form-item path="ncContent" label="NC代码内容">
|
||||||
|
<n-input type="textarea" v-model:value="formData.ncContent" placeholder="请输入NC代码内容" />
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi>
|
||||||
|
<n-form-item label="备注">
|
||||||
|
<n-input type="textarea" v-model:value="formData.remark" placeholder="请输入备注" />
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
|
<!-- <n-gi>
|
||||||
|
<n-form-item label="工作中心">
|
||||||
|
<n-input v-model:value="formData.workCenter" placeholder="请输入工作中心" />
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi>
|
||||||
|
<n-form-item label="设备ID">
|
||||||
|
<n-input v-model:value="formData.deviceId" placeholder="请输入设备ID" />
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi>
|
||||||
|
<n-form-item label="设备名称">
|
||||||
|
<n-input v-model:value="formData.deviceName" placeholder="请输入设备名称" />
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi> -->
|
||||||
|
|
||||||
|
<!-- <n-gi>
|
||||||
|
<n-form-item label="下发状态">
|
||||||
|
<n-radio-group v-model:value="formData.isIssued" name="radiogroup">
|
||||||
|
<n-space>
|
||||||
|
<n-radio :value="1">
|
||||||
|
已下发
|
||||||
|
</n-radio>
|
||||||
|
<n-radio :value="0">
|
||||||
|
未下发
|
||||||
|
</n-radio>
|
||||||
|
</n-space>
|
||||||
|
</n-radio-group>
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi> -->
|
||||||
|
<!-- <template v-if="formData.isIssued == 1">
|
||||||
|
<n-gi>
|
||||||
|
<n-form-item label="下发时间">
|
||||||
|
<n-date-picker
|
||||||
|
v-model:formatted-value="formData.issueTime"
|
||||||
|
type="datetime"
|
||||||
|
style="width: 100%;"
|
||||||
|
clearable
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
/>
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
|
<n-gi>
|
||||||
|
<n-form-item label="下发人">
|
||||||
|
<n-input v-model:value="formData.issueBy" placeholder="请选择下发人" />
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
|
</template> -->
|
||||||
|
|
||||||
|
|
||||||
|
</n-grid>
|
||||||
|
</n-form>
|
||||||
|
<template #footer>
|
||||||
|
<n-space justify="end">
|
||||||
|
<n-button @click="addModel = false">取消</n-button>
|
||||||
|
<n-button
|
||||||
|
type="primary"
|
||||||
|
|
||||||
|
@click="savehand"
|
||||||
|
>确认</n-button>
|
||||||
|
</n-space>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</n-modal>
|
||||||
|
|
||||||
|
<!--下发-->
|
||||||
|
<n-modal
|
||||||
|
v-model:show="issueModel"
|
||||||
|
title="下发"
|
||||||
|
preset="card"
|
||||||
|
style="width: 600px"
|
||||||
|
:mask-closable="false"
|
||||||
|
>
|
||||||
|
<div style="display: flex;padding-bottom: 15px;font-size: 16px;">
|
||||||
|
<div style="padding: 2px 5px;background: #50a5b7;color: #fff;border-radius: 6px 0 0 6px;">NC代码编号</div>
|
||||||
|
<div style="padding: 2px 5px;border: 1px solid #50a5b7;border-radius: 0 6px 6px 0;">{{ ncCode }}</div>
|
||||||
|
</div>
|
||||||
|
<n-transfer
|
||||||
|
v-model:value="xfsbvalue"
|
||||||
|
style="height:500px;"
|
||||||
|
:options="options"
|
||||||
|
:render-source-list="renderSourceList"
|
||||||
|
source-filterable
|
||||||
|
@update:value="tranupdate"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<template #footer>
|
||||||
|
<n-space justify="end">
|
||||||
|
<n-button @click="issueModel = false">取消</n-button>
|
||||||
|
<n-button
|
||||||
|
type="primary"
|
||||||
|
@click="isssavehand"
|
||||||
|
>确认</n-button>
|
||||||
|
</n-space>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
</n-modal>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
reactive,
|
||||||
|
h,
|
||||||
|
onMounted,
|
||||||
|
} from 'vue'
|
||||||
|
|
||||||
|
|
||||||
|
import {
|
||||||
|
NTree,
|
||||||
|
NButton,
|
||||||
|
NIcon,
|
||||||
|
NSpace,
|
||||||
|
NPagination,
|
||||||
|
NGrid,
|
||||||
|
useMessage,
|
||||||
|
useDialog,
|
||||||
|
NDropdown,
|
||||||
|
} from 'naive-ui'
|
||||||
|
|
||||||
|
import {
|
||||||
|
SearchOutline,
|
||||||
|
RefreshOutline,
|
||||||
|
AddOutline,
|
||||||
|
ArrowDownCircleOutline,
|
||||||
|
EllipsisHorizontalOutline
|
||||||
|
} from '@vicons/ionicons5'
|
||||||
|
|
||||||
|
import { useUserStore } from '@/stores/user'
|
||||||
|
|
||||||
|
import {
|
||||||
|
addnccode,
|
||||||
|
nccodelist,
|
||||||
|
batchIssue,
|
||||||
|
editccode,
|
||||||
|
issuecopy,
|
||||||
|
generateNccode,
|
||||||
|
opertree,
|
||||||
|
exportNccode,
|
||||||
|
deleteIssue
|
||||||
|
} from '@/api/nccode'
|
||||||
|
|
||||||
|
const dialog = useDialog()
|
||||||
|
|
||||||
|
const message = useMessage()
|
||||||
|
|
||||||
|
const userStore = useUserStore()
|
||||||
|
|
||||||
|
// 权限检查
|
||||||
|
const hasPermission = (permission: string) => userStore.hasPermission(permission)
|
||||||
|
|
||||||
|
//const ncDispatchRecords = ref<ncCode[]>([])
|
||||||
|
|
||||||
|
//派工状态字典
|
||||||
|
//const qcAssingStatusOptions = ref<{ label: string; value: any;class:any }[]>([])
|
||||||
|
|
||||||
|
// ==================== 搜索表单 ====================
|
||||||
|
const searchForm = reactive({
|
||||||
|
page: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
ncCode:'',
|
||||||
|
ncName:''
|
||||||
|
//status:1
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ==================== 表格 ====================
|
||||||
|
const datalist = ref<any>([])
|
||||||
|
const loading = ref(false)
|
||||||
|
|
||||||
|
//分页
|
||||||
|
const pagination = reactive({
|
||||||
|
page: 1,
|
||||||
|
pageSize: 20,
|
||||||
|
itemCount: 0
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
const columns = [
|
||||||
|
// {
|
||||||
|
// type: 'selection',
|
||||||
|
// minWidth:60
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
align:"center",
|
||||||
|
title:"NC代码编号",
|
||||||
|
key:"ncCode",
|
||||||
|
minWidth:150
|
||||||
|
},
|
||||||
|
{
|
||||||
|
align:"center",
|
||||||
|
title:"NC代码名称",
|
||||||
|
key:"ncName",
|
||||||
|
minWidth:150
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
align:"center",
|
||||||
|
title:"NC代码内容",
|
||||||
|
key:"ncContent",
|
||||||
|
minWidth:150
|
||||||
|
},
|
||||||
|
|
||||||
|
// {
|
||||||
|
// align:"center",
|
||||||
|
// title:"工作中心",
|
||||||
|
// key:"workCenter",
|
||||||
|
// minWidth:150
|
||||||
|
// },
|
||||||
|
|
||||||
|
// {
|
||||||
|
// align:"center",
|
||||||
|
// title:"设备ID",
|
||||||
|
// key:"deviceId",
|
||||||
|
// minWidth:150
|
||||||
|
// },
|
||||||
|
|
||||||
|
// {
|
||||||
|
// align:"center",
|
||||||
|
// title:"设备名称",
|
||||||
|
// key:"deviceName",
|
||||||
|
// minWidth:150
|
||||||
|
// },
|
||||||
|
|
||||||
|
{
|
||||||
|
align:"center",
|
||||||
|
title:"状态",
|
||||||
|
key:"status",
|
||||||
|
minWidth:150,
|
||||||
|
render(row:any) {
|
||||||
|
if(row.status == 1){
|
||||||
|
return '启用'
|
||||||
|
}
|
||||||
|
return '禁用'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
align:"center",
|
||||||
|
title:"是否下发",
|
||||||
|
key:"isIssued",
|
||||||
|
minWidth:150,
|
||||||
|
render(row:any) {
|
||||||
|
if(row.isSued== 1){
|
||||||
|
return '已下发'
|
||||||
|
}
|
||||||
|
return '未下发'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
align:"center",
|
||||||
|
title:"下发时间",
|
||||||
|
key:"issueTime",
|
||||||
|
minWidth:150
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
align:"center",
|
||||||
|
title:"下发人",
|
||||||
|
key:"issueName",
|
||||||
|
minWidth:150
|
||||||
|
},
|
||||||
|
{
|
||||||
|
align:"center",
|
||||||
|
title:"备注",
|
||||||
|
key:"remark",
|
||||||
|
minWidth:150
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
align:'center',
|
||||||
|
title: '操作',
|
||||||
|
key: 'actions',
|
||||||
|
width: 260,
|
||||||
|
fixed: 'right',
|
||||||
|
render(row:any) {
|
||||||
|
const buttons:any = []
|
||||||
|
|
||||||
|
if(hasPermission('biz:ncCode:issue')){
|
||||||
|
buttons.push(h(NButton, {
|
||||||
|
size: 'small',
|
||||||
|
type:'info',
|
||||||
|
ghost:true,
|
||||||
|
onClick: () => {
|
||||||
|
issuehand(row)
|
||||||
|
} },
|
||||||
|
{ default: () => '下发'}
|
||||||
|
))
|
||||||
|
}
|
||||||
|
if(hasPermission('biz:nccode:add')){
|
||||||
|
buttons.push(h(NButton, {
|
||||||
|
size: 'small',
|
||||||
|
type:'warning',
|
||||||
|
ghost:true,
|
||||||
|
onClick: () => {
|
||||||
|
addhand(3,row)
|
||||||
|
}},
|
||||||
|
{ default: () => '复制'}
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
|
if(hasPermission('biz:ncCode:edit')){
|
||||||
|
buttons.push(h(NButton, {
|
||||||
|
size: 'small',
|
||||||
|
type:'primary',
|
||||||
|
ghost:true,
|
||||||
|
onClick: () => {
|
||||||
|
addhand(2,row)
|
||||||
|
} },
|
||||||
|
{ default: () => '编辑'}
|
||||||
|
))
|
||||||
|
}
|
||||||
|
if(hasPermission('biz:ncCode:remove')){
|
||||||
|
buttons.push(h(NButton, {
|
||||||
|
size: 'small',
|
||||||
|
type:'error',
|
||||||
|
ghost:true,
|
||||||
|
onClick: () => {
|
||||||
|
dialog.warning({
|
||||||
|
title: '警告',
|
||||||
|
content: `你确定删除NC代码编号为:${row.ncCode}的数据`,
|
||||||
|
positiveText: '确定',
|
||||||
|
negativeText: '取消',
|
||||||
|
//draggable: true,
|
||||||
|
onPositiveClick: () => {
|
||||||
|
deleteIssue(row.id).then(() => {
|
||||||
|
message.success('操作成功')
|
||||||
|
setTimeout(() => {
|
||||||
|
search()
|
||||||
|
},1000)
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
onNegativeClick: () => {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
} },
|
||||||
|
{ default: () => '删除'}
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return buttons.length > 0 ? h(NSpace, {justify:'center'}, { default: () => buttons }) : '-'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//搜索数据
|
||||||
|
function search() {
|
||||||
|
pagination.page = 1
|
||||||
|
searchForm.page = 1
|
||||||
|
searchForm.pageSize = 20
|
||||||
|
getlist()
|
||||||
|
}
|
||||||
|
|
||||||
|
//重置
|
||||||
|
function reset() {
|
||||||
|
searchForm.ncCode = ''
|
||||||
|
searchForm.ncName = ''
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取列表数据
|
||||||
|
function getlist() {
|
||||||
|
nccodelist(searchForm).then((rps:any) => {
|
||||||
|
datalist.value = rps.list
|
||||||
|
pagination.itemCount = rps.total
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function handlePageChange(page: number) {
|
||||||
|
pagination.page = page
|
||||||
|
searchForm.page = page
|
||||||
|
getlist()
|
||||||
|
}
|
||||||
|
|
||||||
|
function handlePageSizeChange(pageSize: number) {
|
||||||
|
pagination.pageSize = pageSize
|
||||||
|
pagination.page = 1
|
||||||
|
searchForm.page = 1
|
||||||
|
searchForm.pageSize = pageSize
|
||||||
|
getlist()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// // 加载字典选项
|
||||||
|
// async function loadDictOptions() {
|
||||||
|
// //qcCancelLoading = true
|
||||||
|
// try {
|
||||||
|
// const data = await dictDataApi.listByType('assing_status')
|
||||||
|
// qcAssingStatusOptions.value = data.map(d => ({ label: d.dictLabel, value: (Number(d.dictValue) || d.dictValue),class:d.listClass }))
|
||||||
|
// }catch {}
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
//新增
|
||||||
|
let addModel = ref(false)
|
||||||
|
|
||||||
|
const addformRef = ref()
|
||||||
|
|
||||||
|
let formData = reactive<any>({
|
||||||
|
id:'',
|
||||||
|
ncCode:'', //NC代码编号
|
||||||
|
ncName:'', //NC代码名称
|
||||||
|
ncContent:'', //NC代码内容
|
||||||
|
workCenter:'', //工作中心
|
||||||
|
deviceId:'', //设备ID
|
||||||
|
deviceName:'', //设备名称
|
||||||
|
status:1, //状态:1-启用 0-禁用
|
||||||
|
// isIssued:1, //是否已下发:1-已下发 0-未下发
|
||||||
|
// issueTime:null, //下发时间
|
||||||
|
// issueBy:'', //下发人
|
||||||
|
remark:'' //备注
|
||||||
|
})
|
||||||
|
const addrules = {
|
||||||
|
ncCode: [
|
||||||
|
{ required: true, message: '请输入NC代码编号', trigger: 'blur' },
|
||||||
|
// {
|
||||||
|
// validator(rule:any,value: any) {
|
||||||
|
// if(value > pauseform.qcNum){
|
||||||
|
// return new Error(`报检数量最大为${pauseform.qcNum}`)
|
||||||
|
// }
|
||||||
|
// return true
|
||||||
|
// },
|
||||||
|
// trigger: ['blur']
|
||||||
|
// }
|
||||||
|
],
|
||||||
|
ncName:[
|
||||||
|
{ required: true, message: '请输入NC代码名称', trigger: 'blur' }
|
||||||
|
],
|
||||||
|
ncContent:[
|
||||||
|
{ required: true, message: '请输入NC代码内容', trigger: 'blur' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
let isstype = ref<any>(1)
|
||||||
|
|
||||||
|
const cztype = reactive<any>({
|
||||||
|
1:'新增',
|
||||||
|
2:'编辑',
|
||||||
|
3:'复制'
|
||||||
|
})
|
||||||
|
|
||||||
|
function addhand(type:any,row?:any) {
|
||||||
|
addModel.value = true
|
||||||
|
formData.value?.restoreValidation()
|
||||||
|
isstype.value = type
|
||||||
|
|
||||||
|
if(row){
|
||||||
|
formData.id = row.id
|
||||||
|
formData.ncName = row.ncName
|
||||||
|
formData.ncContent = row.ncContent
|
||||||
|
formData.workCenter = row.workCenter
|
||||||
|
formData.deviceId = row.deviceId
|
||||||
|
formData.deviceName = row.deviceName
|
||||||
|
formData.status = row.status
|
||||||
|
// formData.isIssued = row.isIssued
|
||||||
|
// formData.issueTime = row.issueTime
|
||||||
|
// formData.issueBy = row.issueBy
|
||||||
|
formData.remark = row.remark
|
||||||
|
if(type == 2){
|
||||||
|
formData.ncCode = row.ncCode
|
||||||
|
}else{
|
||||||
|
formData.ncCode = ''
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
formData.id = ''
|
||||||
|
formData.ncCode = ''
|
||||||
|
formData.ncName = ''
|
||||||
|
formData.ncContent = ''
|
||||||
|
formData.workCenter = ''
|
||||||
|
formData.deviceId = ''
|
||||||
|
formData.deviceName = ''
|
||||||
|
formData.status = 1
|
||||||
|
// formData.isIssued = ''
|
||||||
|
// formData.issueTime = ''
|
||||||
|
// formData.issueBy = ''
|
||||||
|
formData.remark = ''
|
||||||
|
}
|
||||||
|
if(type == 1 || type == 3){
|
||||||
|
generateNccode().then(rps => {
|
||||||
|
formData.ncCode = rps
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function addEdi(){
|
||||||
|
if(isstype.value == 1){
|
||||||
|
return addnccode(formData)
|
||||||
|
}
|
||||||
|
if(isstype.value == 2){
|
||||||
|
return editccode(formData)
|
||||||
|
}
|
||||||
|
formData.id = ''
|
||||||
|
return issuecopy(formData)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function savehand() {
|
||||||
|
addformRef.value?.validate((e:any) => {
|
||||||
|
if (!e) {
|
||||||
|
|
||||||
|
addEdi().then(() => {
|
||||||
|
message.success(`${cztype[isstype.value]}成功`)
|
||||||
|
setTimeout(() => {
|
||||||
|
getlist()
|
||||||
|
addModel.value = false
|
||||||
|
},1500)
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//表格选中
|
||||||
|
|
||||||
|
function rowKey(row:any) {
|
||||||
|
return row.id
|
||||||
|
}
|
||||||
|
|
||||||
|
let chearr = ref<any>([])
|
||||||
|
function handleCheck(v:any) {
|
||||||
|
chearr.value = v
|
||||||
|
console.log(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
//删除
|
||||||
|
function delhand() {
|
||||||
|
if(chearr.value.length > 0){
|
||||||
|
batchIssue(chearr.value).then(() => {
|
||||||
|
message.success('操作成功')
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
message.error('请勾选设备')
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//下发任务列表
|
||||||
|
//let isstasklist = ref<any>([])
|
||||||
|
|
||||||
|
//下发设备列表
|
||||||
|
//let issequiplist = ref<any>([])
|
||||||
|
|
||||||
|
let treeData:any = []
|
||||||
|
let xfsbvalue = ref<Array<string | number>>([])
|
||||||
|
let renderSourceList:any = ''
|
||||||
|
|
||||||
|
let options = ref<any>([]) //flattenTree(createData())
|
||||||
|
|
||||||
|
function flattenTree(list: undefined | any[]) {
|
||||||
|
const result: any[] = []
|
||||||
|
function flatten(_list: any[] = []) {
|
||||||
|
_list.forEach((item) => {
|
||||||
|
//result.push(item)
|
||||||
|
if(item.childList){
|
||||||
|
flatten(item.childList)
|
||||||
|
}else{
|
||||||
|
result.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
flatten(list)
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//下发
|
||||||
|
let issueModel = ref(false)
|
||||||
|
// let issformData = reactive<any>({
|
||||||
|
// taskid:'',
|
||||||
|
// equis:''
|
||||||
|
// })
|
||||||
|
// const issaddrules = {
|
||||||
|
// taskid:[
|
||||||
|
// { required: true, message: '请选择下发任务', trigger: 'blur' }
|
||||||
|
// ],
|
||||||
|
// equis:[
|
||||||
|
// { required: true, message: '请选择下发设备', trigger: 'blur' }
|
||||||
|
// ]
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
let issarr:any[] = []
|
||||||
|
let ncCode = ref<any>('')
|
||||||
|
function tranupdate(v:any) {
|
||||||
|
issarr = []
|
||||||
|
if(v.length > 0){
|
||||||
|
v.forEach((n:any) => {
|
||||||
|
if(n.split('-').length == 3){
|
||||||
|
issarr.push(n)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let ncid = ''
|
||||||
|
function issuehand(row:any) {
|
||||||
|
issueModel.value = true
|
||||||
|
issarr = []
|
||||||
|
ncid = row.id
|
||||||
|
ncCode.value = row.code
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function isssavehand() {
|
||||||
|
if(issarr.length > 0){
|
||||||
|
batchIssue({
|
||||||
|
ncCode:ncid,
|
||||||
|
ncCodeList:issarr
|
||||||
|
}).then(() => {
|
||||||
|
message.success('操作成功')
|
||||||
|
setTimeout(() => {
|
||||||
|
getlist()
|
||||||
|
issueModel.value = false
|
||||||
|
},1500)
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
message.warning('请选择设备')
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//导出
|
||||||
|
//let selectedIds = ref<any>([])
|
||||||
|
function handleExport() {
|
||||||
|
|
||||||
|
|
||||||
|
exportNccode({}).then(rps => {
|
||||||
|
const url = window.URL.createObjectURL(rps)
|
||||||
|
const link = document.createElement('a')
|
||||||
|
link.href = url
|
||||||
|
link.download = 'NC代码数据.xlsx'
|
||||||
|
link.click()
|
||||||
|
window.URL.revokeObjectURL(url)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
getlist()
|
||||||
|
|
||||||
|
//查看下发记录
|
||||||
|
// async function handleDispatchRecord(row:ncCode){
|
||||||
|
// const ncId = row.id
|
||||||
|
// // ncDispatchRecords.value = await
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
|
||||||
|
//加载任务树
|
||||||
|
opertree().then(rps => {
|
||||||
|
treeData = rps
|
||||||
|
options.value = flattenTree(treeData)
|
||||||
|
renderSourceList = function (obj:any) {
|
||||||
|
return h(NTree, {
|
||||||
|
style: 'margin: 0 4px;',
|
||||||
|
keyField: 'value',
|
||||||
|
checkable: true,
|
||||||
|
selectable: false,
|
||||||
|
blockLine: true,
|
||||||
|
checkOnClick: true,
|
||||||
|
childrenField:'childList',
|
||||||
|
data: treeData,
|
||||||
|
cascade:true,
|
||||||
|
defaultExpandAll:true,
|
||||||
|
pattern:obj.pattern,
|
||||||
|
checkedKeys: xfsbvalue.value,
|
||||||
|
onUpdateCheckedKeys: (checkedKeys:any) => {
|
||||||
|
obj.onCheck(checkedKeys)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
//loadDictOptions()
|
||||||
|
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@ -10,15 +10,15 @@
|
|||||||
label-placement="left"
|
label-placement="left"
|
||||||
>
|
>
|
||||||
|
|
||||||
<n-form-item label="图纸编号">
|
<n-form-item label="图文编号">
|
||||||
<n-input v-model:value="searchForm.ncCode" placeholder="请输入图纸编号" />
|
<n-input v-model:value="searchForm.drawingCode" placeholder="请输入图文编号" />
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
<n-form-item label="图纸名称">
|
<!-- <n-form-item label="图文名称">
|
||||||
<n-input v-model:value="searchForm.ncName" placeholder="请输入图纸名称" />
|
<n-input v-model:value="searchForm.drawingName" placeholder="请输入图文名称" />
|
||||||
</n-form-item>
|
|
||||||
<n-form-item label="工序编码">
|
|
||||||
<n-input v-model:value="searchForm.ncName" placeholder="请输入工序编码" />
|
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
|
<n-form-item label="图文版本">
|
||||||
|
<n-input v-model:value="searchForm.drawingVersion" placeholder="请输入图文版本" />
|
||||||
|
</n-form-item> -->
|
||||||
|
|
||||||
|
|
||||||
<n-space>
|
<n-space>
|
||||||
@ -35,7 +35,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<n-space style="margin-bottom: 15px;">
|
<n-space style="margin-bottom: 15px;">
|
||||||
<n-button type="primary" @click="addhand(1)" size="small">
|
<n-button v-if="hasPermission('biz:drawingFile:add')" type="primary" @click="addhand(1)" size="small">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<n-icon>
|
<n-icon>
|
||||||
<AddOutline />
|
<AddOutline />
|
||||||
@ -51,7 +51,7 @@
|
|||||||
</template>
|
</template>
|
||||||
删除
|
删除
|
||||||
</n-button> -->
|
</n-button> -->
|
||||||
<n-button type="success" @click="issuehand" size="small">
|
<n-button type="success" v-if="hasPermission('biz:drawingFile:export')" @click="handleExport" size="small">
|
||||||
<template #icon>
|
<template #icon>
|
||||||
<n-icon>
|
<n-icon>
|
||||||
<ArrowDownCircleOutline />
|
<ArrowDownCircleOutline />
|
||||||
@ -75,7 +75,7 @@
|
|||||||
@update:checked-row-keys="handleCheck"
|
@update:checked-row-keys="handleCheck"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="pagination-container" style="display: flex; justify-content: flex-end; margin-top: 12px">
|
<div v-if="pagination.itemCount > pagination.pageSize" class="pagination-container" style="display: flex; justify-content: flex-end; margin-top: 12px">
|
||||||
<n-pagination
|
<n-pagination
|
||||||
v-model:page="pagination.page"
|
v-model:page="pagination.page"
|
||||||
v-model:page-size="pagination.pageSize"
|
v-model:page-size="pagination.pageSize"
|
||||||
@ -110,29 +110,8 @@
|
|||||||
>
|
>
|
||||||
<n-grid :cols="1" :x-gap="24">
|
<n-grid :cols="1" :x-gap="24">
|
||||||
<n-gi>
|
<n-gi>
|
||||||
|
<n-form-item path="drawingCode" label="图文编号">
|
||||||
<n-form-item path="drawingCode" label="图纸编号">
|
<n-input v-model:value="formData.drawingCode" disabled placeholder="自动生成" />
|
||||||
<n-input v-model:value="formData.drawingCode" placeholder="请输入图纸编号" />
|
|
||||||
</n-form-item>
|
|
||||||
</n-gi>
|
|
||||||
<n-gi>
|
|
||||||
<n-form-item path="drawingName" label="图纸名称">
|
|
||||||
<n-input v-model:value="formData.drawingName" placeholder="请输入图纸名称" />
|
|
||||||
</n-form-item>
|
|
||||||
</n-gi>
|
|
||||||
<n-gi>
|
|
||||||
<n-form-item label="图纸版本">
|
|
||||||
<n-input v-model:value="formData.drawingVersion" placeholder="请输入图纸版本" />
|
|
||||||
</n-form-item>
|
|
||||||
</n-gi>
|
|
||||||
<n-gi>
|
|
||||||
<n-form-item label="工序名称">
|
|
||||||
<n-input v-model:value="formData.processName" placeholder="请选择工序" />
|
|
||||||
</n-form-item>
|
|
||||||
</n-gi>
|
|
||||||
<n-gi>
|
|
||||||
<n-form-item label="PLM文档">
|
|
||||||
<n-input v-model:value="formData.plmDocId" placeholder="请选择PLM文档" />
|
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
</n-gi>
|
</n-gi>
|
||||||
<n-gi>
|
<n-gi>
|
||||||
@ -149,23 +128,100 @@
|
|||||||
</n-radio-group>
|
</n-radio-group>
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
</n-gi>
|
</n-gi>
|
||||||
|
<!-- <n-gi>
|
||||||
|
<n-form-item path="drawingName" label="图文名称">
|
||||||
|
<n-input v-model:value="formData.drawingName" placeholder="请输入图文名称" />
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
<n-gi>
|
<n-gi>
|
||||||
<n-form-item path="gxname" label="上传图纸">
|
<n-form-item label="图文版本">
|
||||||
<!--:default-file-list="fileList"-->
|
<n-input v-model:value="formData.drawingVersion" placeholder="请输入图文版本" />
|
||||||
<n-upload
|
</n-form-item>
|
||||||
action="https://www.mocky.io/v2/5e4bafc63100007100d8b70f"
|
</n-gi> -->
|
||||||
list-type="image-card"
|
<!-- <n-gi>
|
||||||
>
|
<n-form-item path="processId" label="工序名称">
|
||||||
点击上传
|
<n-select
|
||||||
</n-upload>
|
v-model:value="selval"
|
||||||
|
filterable
|
||||||
|
placeholder="请输入工序名称搜索"
|
||||||
|
:options="yglist"
|
||||||
|
:loading="loadingRef"
|
||||||
|
clearable
|
||||||
|
remote
|
||||||
|
:clear-filter-after-select="false"
|
||||||
|
@search="slehand"
|
||||||
|
@update:value="updatesle"
|
||||||
|
/>
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi> -->
|
||||||
|
<!-- <n-gi>
|
||||||
|
<n-form-item label="PLM文档">
|
||||||
|
<n-input v-model:value="formData.plmDocId" placeholder="请选择PLM文档" />
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi> -->
|
||||||
|
|
||||||
|
<n-gi>
|
||||||
|
<n-form-item label="类型">
|
||||||
|
<n-radio-group v-model:value="formData.drawingType" :default-value="1" name="radiogroup">
|
||||||
|
<n-space>
|
||||||
|
<n-radio :value="0">
|
||||||
|
图纸
|
||||||
|
</n-radio>
|
||||||
|
<n-radio :value="1">
|
||||||
|
文件
|
||||||
|
</n-radio>
|
||||||
|
</n-space>
|
||||||
|
</n-radio-group>
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
</n-gi>
|
</n-gi>
|
||||||
|
|
||||||
<n-gi>
|
<n-gi>
|
||||||
|
<n-form-item path="fileId" label="上传文件">
|
||||||
|
<!--:default-file-list="fileList"-->
|
||||||
|
<!-- <n-upload
|
||||||
|
:action="URL"
|
||||||
|
:headers="{
|
||||||
|
Authorization:TOKEN
|
||||||
|
}"
|
||||||
|
list-type="image-card"
|
||||||
|
>
|
||||||
|
点击上传
|
||||||
|
</n-upload> -->
|
||||||
|
<!-- @before-upload ="flchang"
|
||||||
|
@change="flchang"
|
||||||
|
@remove="flchang"-->
|
||||||
|
<n-upload
|
||||||
|
directory-dnd
|
||||||
|
auto-upload="false"
|
||||||
|
:action="URL"
|
||||||
|
:headers="{
|
||||||
|
Authorization:TOKEN
|
||||||
|
}"
|
||||||
|
:max="20"
|
||||||
|
v-model:file-list="flist"
|
||||||
|
|
||||||
|
@finish="flchang"
|
||||||
|
>
|
||||||
|
|
||||||
|
<n-upload-dragger>
|
||||||
|
<div>
|
||||||
|
<n-icon size="40" :depth="3">
|
||||||
|
<CloudUploadOutline />
|
||||||
|
</n-icon>
|
||||||
|
</div>
|
||||||
|
<n-text style="font-size: 14px">
|
||||||
|
点击或者拖动文件到该区域来上传
|
||||||
|
</n-text>
|
||||||
|
</n-upload-dragger>
|
||||||
|
</n-upload>
|
||||||
|
</n-form-item>
|
||||||
|
</n-gi>
|
||||||
|
|
||||||
|
<!-- <n-gi>
|
||||||
<n-form-item path="gxname" label="备注">
|
<n-form-item path="gxname" label="备注">
|
||||||
<n-input type="textarea" v-model:value="formData.remark" placeholder="请输入备注" />
|
<n-input type="textarea" v-model:value="formData.remark" placeholder="请输入备注" />
|
||||||
</n-form-item>
|
</n-form-item>
|
||||||
</n-gi>
|
</n-gi> -->
|
||||||
</n-grid>
|
</n-grid>
|
||||||
</n-form>
|
</n-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
@ -182,61 +238,41 @@
|
|||||||
</n-modal>
|
</n-modal>
|
||||||
|
|
||||||
<!--下发-->
|
<!--下发-->
|
||||||
|
|
||||||
<n-modal
|
<n-modal
|
||||||
v-model:show="issueModel"
|
v-model:show="issueModel"
|
||||||
title="下发"
|
title="下发"
|
||||||
preset="card"
|
preset="card"
|
||||||
style="width: 500px"
|
style="width: 600px"
|
||||||
:mask-closable="false"
|
:mask-closable="false"
|
||||||
>
|
>
|
||||||
|
<div style="display: flex;padding-bottom: 15px;font-size: 16px;">
|
||||||
|
<div style="padding: 2px 5px;background: #50a5b7;color: #fff;border-radius: 6px 0 0 6px;">图文编号</div>
|
||||||
|
<div style="padding: 2px 5px;border: 1px solid #50a5b7;border-radius: 0 6px 6px 0;">{{ imgCode }}</div>
|
||||||
|
</div>
|
||||||
|
<n-transfer
|
||||||
|
v-model:value="xfsbvalue"
|
||||||
|
style="height:500px;"
|
||||||
|
:options="options"
|
||||||
|
:render-source-list="renderSourceList"
|
||||||
|
source-filterable
|
||||||
|
@update:value="tranupdate"
|
||||||
|
/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<n-form
|
|
||||||
ref="issformRef"
|
|
||||||
:model="issformData"
|
|
||||||
:rules="issaddrules"
|
|
||||||
label-placement="top"
|
|
||||||
label-width="100"
|
|
||||||
>
|
|
||||||
<n-grid :cols="1" :x-gap="24">
|
|
||||||
<n-gi>
|
|
||||||
<n-form-item path="taskid" label="下发任务">
|
|
||||||
<n-select
|
|
||||||
:disabled="false"
|
|
||||||
:render-label="renderlabe"
|
|
||||||
v-model:value="issformData.taskid"
|
|
||||||
placeholder="请选择下发任务"
|
|
||||||
:options="isstasklist"
|
|
||||||
/>
|
|
||||||
</n-form-item>
|
|
||||||
<n-form-item path="equis" label="下发设备">
|
|
||||||
<n-select
|
|
||||||
:disabled="false"
|
|
||||||
:render-label="renderlabe"
|
|
||||||
v-model:value="issformData.equis"
|
|
||||||
placeholder="请选择下发设备"
|
|
||||||
:options="issequiplist"
|
|
||||||
/>
|
|
||||||
</n-form-item>
|
|
||||||
</n-gi>
|
|
||||||
<!-- <n-gi>
|
|
||||||
<n-form-item path="ncName" label="下发代码">
|
|
||||||
<n-input v-model:value="formData.ncName" placeholder="请输入NC代码名称" />
|
|
||||||
</n-form-item>
|
|
||||||
</n-gi> -->
|
|
||||||
</n-grid>
|
|
||||||
</n-form>
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<n-space justify="end">
|
<n-space justify="end">
|
||||||
<n-button @click="issueModel = false">取消</n-button>
|
<n-button @click="issueModel = false">取消</n-button>
|
||||||
<n-button
|
<n-button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
|
||||||
@click="isssavehand"
|
@click="isssavehand"
|
||||||
>确认</n-button>
|
>确认</n-button>
|
||||||
</n-space>
|
</n-space>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</n-modal>
|
</n-modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -258,6 +294,9 @@ import {
|
|||||||
NImage,
|
NImage,
|
||||||
NPagination,
|
NPagination,
|
||||||
NGrid,
|
NGrid,
|
||||||
|
NTree,
|
||||||
|
// NGi,
|
||||||
|
NTag,
|
||||||
useMessage,
|
useMessage,
|
||||||
useDialog,
|
useDialog,
|
||||||
} from 'naive-ui'
|
} from 'naive-ui'
|
||||||
@ -266,7 +305,8 @@ import {
|
|||||||
SearchOutline,
|
SearchOutline,
|
||||||
RefreshOutline,
|
RefreshOutline,
|
||||||
AddOutline,
|
AddOutline,
|
||||||
ArrowDownCircleOutline
|
ArrowDownCircleOutline,
|
||||||
|
CloudUploadOutline
|
||||||
} from '@vicons/ionicons5'
|
} from '@vicons/ionicons5'
|
||||||
|
|
||||||
import { useUserStore } from '@/stores/user'
|
import { useUserStore } from '@/stores/user'
|
||||||
@ -275,11 +315,20 @@ import {
|
|||||||
addDrawing,
|
addDrawing,
|
||||||
editDrawing,
|
editDrawing,
|
||||||
drawinglist,
|
drawinglist,
|
||||||
deleteDrawing
|
drawingIssue,
|
||||||
|
deleteDrawing,
|
||||||
|
generateDFCode,
|
||||||
|
exportdraFile,
|
||||||
|
opertree,
|
||||||
|
//filelist,
|
||||||
|
multifilelist
|
||||||
} from '@/api/illustrated'
|
} from '@/api/illustrated'
|
||||||
|
|
||||||
|
import {
|
||||||
|
basicProcessPlanApi
|
||||||
|
} from '@/api/basicProcessPlan'
|
||||||
|
|
||||||
|
const URL = `${import.meta.env.VITE_APP_BASE_API}/sys/file/upload`
|
||||||
|
|
||||||
const dialog = useDialog()
|
const dialog = useDialog()
|
||||||
|
|
||||||
@ -287,6 +336,8 @@ const message = useMessage()
|
|||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|
||||||
|
const TOKEN = userStore.token
|
||||||
|
|
||||||
// 权限检查
|
// 权限检查
|
||||||
const hasPermission = (permission: string) => userStore.hasPermission(permission)
|
const hasPermission = (permission: string) => userStore.hasPermission(permission)
|
||||||
|
|
||||||
@ -298,9 +349,9 @@ const hasPermission = (permission: string) => userStore.hasPermission(permission
|
|||||||
const searchForm = reactive({
|
const searchForm = reactive({
|
||||||
page: 1,
|
page: 1,
|
||||||
pageSize: 20,
|
pageSize: 20,
|
||||||
ncCode:'',
|
drawingCode:'',
|
||||||
ncName:'',
|
drawingName:'',
|
||||||
status:1
|
drawingVersion:''
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@ -317,52 +368,60 @@ const pagination = reactive({
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
align:"center",
|
align:"center",
|
||||||
title:"图纸编号",
|
title:"图文编号",
|
||||||
key:"materialName",
|
key:"drawingCode",
|
||||||
minWidth:150
|
|
||||||
},
|
|
||||||
{
|
|
||||||
align:"center",
|
|
||||||
title:"图纸名称",
|
|
||||||
key:"materialCode",
|
|
||||||
minWidth:150
|
|
||||||
},
|
|
||||||
{
|
|
||||||
align:"center",
|
|
||||||
title:"图纸版本",
|
|
||||||
key:"assingCode",
|
|
||||||
minWidth:150
|
|
||||||
},
|
|
||||||
{
|
|
||||||
align:"center",
|
|
||||||
title:"工序名称",
|
|
||||||
key:"materialCode",
|
|
||||||
minWidth:150
|
|
||||||
},
|
|
||||||
{
|
|
||||||
align:"center",
|
|
||||||
title:"工序编码",
|
|
||||||
key:"assingCode",
|
|
||||||
minWidth:150
|
|
||||||
},
|
|
||||||
{
|
|
||||||
align:"center",
|
|
||||||
title:"图纸缩略图",
|
|
||||||
key:"materialCode",
|
|
||||||
minWidth:150,
|
|
||||||
render(row:any) {
|
|
||||||
return h(NImage, {width:'50',height:'50',src:'https://07akioni.oss-cn-beijing.aliyuncs.com/07akioni.jpeg'})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
align:"center",
|
|
||||||
title:"PLM文档",
|
|
||||||
key:"assingCode",
|
|
||||||
minWidth:150
|
minWidth:150
|
||||||
},
|
},
|
||||||
|
// {
|
||||||
|
// align:"center",
|
||||||
|
// title:"图文名称",
|
||||||
|
// key:"drawingName",
|
||||||
|
// minWidth:150
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// align:"center",
|
||||||
|
// title:"图文版本",
|
||||||
|
// key:"drawingVersion",
|
||||||
|
// minWidth:150
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// align:"center",
|
||||||
|
// title:"关联工序名称",
|
||||||
|
// key:"processName",
|
||||||
|
// minWidth:150
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// align:"center",
|
||||||
|
// title:"关联工序编码",
|
||||||
|
// key:"processCode",
|
||||||
|
// minWidth:150
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// align:"center",
|
||||||
|
// title:"图文缩略图",
|
||||||
|
// key:"materialCode",
|
||||||
|
// minWidth:150,
|
||||||
|
// render(row:any) {
|
||||||
|
// //filePath
|
||||||
|
// return h(NImage, {width:'50',height:'50',src:'https://07akioni.oss-cn-beijing.aliyuncs.com/07akioni.jpeg'})
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// align:"center",
|
||||||
|
// title:"PLM文档",
|
||||||
|
// key:"plmDocId",
|
||||||
|
// minWidth:150
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// align:"center",
|
||||||
|
// title:"PLM版本号",
|
||||||
|
// key:"plmVersion",
|
||||||
|
// minWidth:150
|
||||||
|
// },
|
||||||
{
|
{
|
||||||
align:"center",
|
align:"center",
|
||||||
title:"状态",
|
title:"状态",
|
||||||
@ -381,7 +440,7 @@ const columns = [
|
|||||||
key:"isIssued",
|
key:"isIssued",
|
||||||
minWidth:150,
|
minWidth:150,
|
||||||
render(row:any) {
|
render(row:any) {
|
||||||
if(row.status == 1){
|
if(row.isIssued == 1){
|
||||||
return '已下发'
|
return '已下发'
|
||||||
}
|
}
|
||||||
return '未下发'
|
return '未下发'
|
||||||
@ -416,13 +475,13 @@ const columns = [
|
|||||||
render(row:any) {
|
render(row:any) {
|
||||||
const buttons:any = []
|
const buttons:any = []
|
||||||
|
|
||||||
if(hasPermission('biz:ncCode:issue')){
|
if(hasPermission('biz:drawingFile:issue')){
|
||||||
buttons.push(h(NButton, {
|
buttons.push(h(NButton, {
|
||||||
size: 'small',
|
size: 'small',
|
||||||
type:'info',
|
type:'info',
|
||||||
ghost:true,
|
ghost:true,
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
issuehand()
|
issuehand(row)
|
||||||
} },
|
} },
|
||||||
{ default: () => '下发'}
|
{ default: () => '下发'}
|
||||||
))
|
))
|
||||||
@ -439,7 +498,7 @@ const columns = [
|
|||||||
// ))
|
// ))
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if(hasPermission('biz:ncCode:edit')){
|
if(hasPermission('biz:drawingFile:edit')){
|
||||||
buttons.push(h(NButton, {
|
buttons.push(h(NButton, {
|
||||||
size: 'small',
|
size: 'small',
|
||||||
type:'primary',
|
type:'primary',
|
||||||
@ -450,7 +509,7 @@ const columns = [
|
|||||||
{ default: () => '编辑'}
|
{ default: () => '编辑'}
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
if(hasPermission('biz:ncCode:remove')){
|
if(hasPermission('biz:drawingFile:remove')){
|
||||||
buttons.push(h(NButton, {
|
buttons.push(h(NButton, {
|
||||||
size: 'small',
|
size: 'small',
|
||||||
type:'error',
|
type:'error',
|
||||||
@ -458,13 +517,16 @@ const columns = [
|
|||||||
onClick: () => {
|
onClick: () => {
|
||||||
dialog.warning({
|
dialog.warning({
|
||||||
title: '警告',
|
title: '警告',
|
||||||
content: `你确定删除NC代码编号为:${row.ncCode}的数据`,
|
content: `你确定删除图文编号为:${row.drawingCode}的数据`,
|
||||||
positiveText: '确定',
|
positiveText: '确定',
|
||||||
negativeText: '取消',
|
negativeText: '取消',
|
||||||
//draggable: true,
|
//draggable: true,
|
||||||
onPositiveClick: () => {
|
onPositiveClick: () => {
|
||||||
deleteDrawing(row.id).then(() => {
|
deleteDrawing(row.id).then(() => {
|
||||||
message.success('操作成功')
|
message.success('操作成功')
|
||||||
|
setTimeout(() => {
|
||||||
|
search()
|
||||||
|
},1000)
|
||||||
})
|
})
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -498,7 +560,9 @@ function search() {
|
|||||||
|
|
||||||
//重置
|
//重置
|
||||||
function reset() {
|
function reset() {
|
||||||
|
searchForm.drawingCode = ''
|
||||||
|
searchForm.drawingName = ''
|
||||||
|
searchForm.drawingVersion = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取列表数据
|
//获取列表数据
|
||||||
@ -526,7 +590,6 @@ function handlePageSizeChange(pageSize: number) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// // 加载字典选项
|
// // 加载字典选项
|
||||||
// async function loadDictOptions() {
|
// async function loadDictOptions() {
|
||||||
// //qcCancelLoading = true
|
// //qcCancelLoading = true
|
||||||
@ -536,6 +599,49 @@ function handlePageSizeChange(pageSize: number) {
|
|||||||
// }catch {}
|
// }catch {}
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
//获取工序
|
||||||
|
//工位交接
|
||||||
|
//查询用户
|
||||||
|
let loadingRef = ref(false)
|
||||||
|
let yglist = ref<any>([])
|
||||||
|
function slehand(v?:any) {
|
||||||
|
loadingRef.value = true
|
||||||
|
|
||||||
|
basicProcessPlanApi.page({
|
||||||
|
page: 1,
|
||||||
|
pageSize: 200,
|
||||||
|
name: v,
|
||||||
|
}).then((rps:any) =>{
|
||||||
|
if(rps.list && rps.list.length > 0){
|
||||||
|
yglist.value = rps.list.map((n:any) => {
|
||||||
|
return {
|
||||||
|
label:n.name,
|
||||||
|
value:n.id //`${n.id}-${n.code}-${n.name}`
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
loadingRef.value = false
|
||||||
|
}).catch(() => {
|
||||||
|
loadingRef.value = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function updatesle(v:any) {
|
||||||
|
if(v){
|
||||||
|
//let varr = v.split('-')
|
||||||
|
formData.processId = v+''
|
||||||
|
// formData.processRouteStepId = varr[0]
|
||||||
|
// formData.processCode = varr[1]
|
||||||
|
// formData.processName = varr[2]
|
||||||
|
}else{
|
||||||
|
formData.processId = ''
|
||||||
|
// formData.processRouteStepId = ''
|
||||||
|
// formData.processCode = ''
|
||||||
|
// formData.processName = ''
|
||||||
|
}
|
||||||
|
//formData.processRouteStepId = v
|
||||||
|
}
|
||||||
|
|
||||||
//新增
|
//新增
|
||||||
let addModel = ref(false)
|
let addModel = ref(false)
|
||||||
@ -544,25 +650,31 @@ const addformRef = ref()
|
|||||||
|
|
||||||
let formData = reactive<any>({
|
let formData = reactive<any>({
|
||||||
id:'',
|
id:'',
|
||||||
drawingCode:'', //图纸编号
|
drawingCode:'', //图文编号
|
||||||
drawingName:'', //图纸名称
|
processId:'', //关联工序ID
|
||||||
drawingVersion:'', //图纸版本
|
drawingType:0, //0 图纸 1 文件
|
||||||
processRouteStepId:'', //关联工序ID
|
fileId:'', //文件id
|
||||||
processCode:'', //工序编码
|
|
||||||
processName:'', //工序名称
|
|
||||||
filePath:'', //文件路径
|
|
||||||
fileName:'', //文件名
|
|
||||||
fileSize:'', //文件大小
|
|
||||||
fileType:'', //文件类型
|
|
||||||
plmDocId:'', //PLM文档ID
|
|
||||||
plmVersion:'', //PLM版本号
|
|
||||||
plmStatus:'', //PLM状态
|
|
||||||
status:1, //状态:1-启用 0-禁用
|
status:1, //状态:1-启用 0-禁用
|
||||||
remark:'' //备注
|
// drawingName:'', //图文名称
|
||||||
|
// drawingVersion:'', //图文版本
|
||||||
|
// processCode:'', //工序编码
|
||||||
|
// processName:'', //工序名称
|
||||||
|
// filePath:'', //文件路径
|
||||||
|
// fileName:'', //文件名
|
||||||
|
// fileSize:'', //文件大小
|
||||||
|
// fileType:'', //文件类型
|
||||||
|
// plmDocId:'', //PLM文档ID
|
||||||
|
// plmVersion:'', //PLM版本号
|
||||||
|
// plmStatus:'', //PLM状态
|
||||||
|
|
||||||
|
// isIssued:1, //是否已下发:1-已下发 0-未下发
|
||||||
|
// issueTime:'', //下发时间
|
||||||
|
// issueBy:'', //下发人
|
||||||
|
// remark:'' //备注
|
||||||
})
|
})
|
||||||
const addrules = {
|
const addrules = {
|
||||||
drawingCode: [
|
drawingCode: [
|
||||||
{ required: true, message: '请输入图纸编号', trigger: 'blur' },
|
{ required: true, message: '请输入图文编号', trigger: 'blur' },
|
||||||
// {
|
// {
|
||||||
// validator(rule:any,value: any) {
|
// validator(rule:any,value: any) {
|
||||||
// if(value > pauseform.qcNum){
|
// if(value > pauseform.qcNum){
|
||||||
@ -573,60 +685,105 @@ const addrules = {
|
|||||||
// trigger: ['blur']
|
// trigger: ['blur']
|
||||||
// }
|
// }
|
||||||
],
|
],
|
||||||
drawingName:[
|
processId:[
|
||||||
{ required: true, message: '请输入图纸名称', trigger: 'blur' }
|
{ required: true, message: '请选择工序', trigger: 'blur' }
|
||||||
],
|
],
|
||||||
ncContent:[
|
fileId:[
|
||||||
{ required: true, message: '请输入NC代码内容', trigger: 'blur' }
|
{ required: true, message: '请上传文件', trigger: 'blur' }
|
||||||
]
|
]
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//文件上传回调
|
||||||
|
let flist = ref<any>([])
|
||||||
|
function flchang(n:any) {
|
||||||
|
let v = JSON.parse(n.event.target.responseText)
|
||||||
|
if(v.data && v.data.id){
|
||||||
|
formData.fileId = formData.fileId + v.data.id+','
|
||||||
|
}
|
||||||
|
console.log(formData.fileId)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
let isstype = ref<any>(1)
|
let isstype = ref<any>(1)
|
||||||
|
let selval = ref<any>('')
|
||||||
const cztype = reactive<any>({
|
|
||||||
1:'新增',
|
|
||||||
2:'编辑'
|
|
||||||
})
|
|
||||||
|
|
||||||
function addhand(type:any,row?:any) {
|
function addhand(type:any,row?:any) {
|
||||||
addModel.value = true
|
addModel.value = true
|
||||||
formData.value?.restoreValidation()
|
formData.value?.restoreValidation()
|
||||||
isstype.value = type
|
isstype.value = type
|
||||||
if(row){
|
if(row){
|
||||||
|
//slehand('')
|
||||||
formData.id = row.id
|
formData.id = row.id
|
||||||
formData.drawingCode = row.drawingCode
|
formData.drawingCode = row.drawingCode
|
||||||
formData.drawingName = row.drawingName
|
formData.processId = row.processId
|
||||||
formData.drawingVersion = row.drawingVersion
|
formData.drawingType = row.drawingType
|
||||||
formData.processRouteStepId = row.processRouteStepId
|
formData.fileId = row.fileId+','
|
||||||
formData.processCode = row.processCode
|
|
||||||
formData.processName = row.processName
|
|
||||||
formData.filePath = row.filePath
|
selval.value = row.processId
|
||||||
formData.fileName = row.fileName
|
flist.value.splice(0)
|
||||||
formData.fileSize = row.fileSize
|
multifilelist(row.fileId).then(rps => {
|
||||||
formData.fileType = row.fileType
|
if(rps && rps.length > 0){
|
||||||
formData.plmDocId = row.plmDocId
|
|
||||||
formData.plmVersion = row.plmVersion
|
// flist.value.push({
|
||||||
formData.plmStatus = row.plmStatus
|
// id: rps.id,
|
||||||
formData.status = row.status
|
// name: rps.originalName,
|
||||||
formData.remark = row.remark
|
// status: 'finished', // 关键:状态设为 'finished' 表示上传完成
|
||||||
|
// url: rps.url, // 用于预览
|
||||||
|
// })
|
||||||
|
flist.value = rps.map((n:any) => {
|
||||||
|
return {
|
||||||
|
id: n.id,
|
||||||
|
name: n.originalName,
|
||||||
|
status: 'finished', // 关键:状态设为 'finished' 表示上传完成
|
||||||
|
url: n.url,
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
|
// formData.drawingName = row.drawingName
|
||||||
|
// formData.drawingVersion = row.drawingVersion
|
||||||
|
// formData.processRouteStepId = row.processRouteStepId
|
||||||
|
// formData.processCode = row.processCode
|
||||||
|
// formData.processName = row.processName
|
||||||
|
// formData.filePath = row.filePath
|
||||||
|
// formData.fileName = row.fileName
|
||||||
|
// formData.fileSize = row.fileSize
|
||||||
|
// formData.fileType = row.fileType
|
||||||
|
// formData.plmDocId = row.plmDocId
|
||||||
|
// formData.plmVersion = row.plmVersion
|
||||||
|
// formData.plmStatus = row.plmStatus
|
||||||
|
// formData.status = row.status
|
||||||
|
// formData.remark = row.remark
|
||||||
}else{
|
}else{
|
||||||
formData.id = ''
|
formData.id = ''
|
||||||
formData.drawingCode = ''
|
formData.drawingCode = ''
|
||||||
formData.drawingName = ''
|
formData.processId = ''
|
||||||
formData.drawingVersion = ''
|
formData.drawingType = 0
|
||||||
formData.processRouteStepId = ''
|
formData.status = 1
|
||||||
formData.processCode = ''
|
formData.fileId = ''
|
||||||
formData.processName = ''
|
flist.value.splice(0)
|
||||||
formData.filePath = ''
|
// formData.drawingCode = ''
|
||||||
formData.fileName = ''
|
// formData.drawingName = ''
|
||||||
formData.fileSize = ''
|
// formData.drawingVersion = ''
|
||||||
formData.fileType = ''
|
// formData.processRouteStepId = ''
|
||||||
formData.plmDocId = ''
|
// formData.processCode = ''
|
||||||
formData.plmVersion = ''
|
// formData.processName = ''
|
||||||
formData.plmStatus = ''
|
// formData.filePath = ''
|
||||||
formData.status = ''
|
// formData.fileName = ''
|
||||||
formData.remark = ''
|
// formData.fileSize = ''
|
||||||
|
// formData.fileType = ''
|
||||||
|
// formData.plmDocId = ''
|
||||||
|
// formData.plmVersion = ''
|
||||||
|
// formData.plmStatus = ''
|
||||||
|
// formData.status = 1
|
||||||
|
// formData.remark = ''
|
||||||
|
generateDFCode().then(rps => {
|
||||||
|
formData.drawingCode = rps
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function addEdi(){
|
function addEdi(){
|
||||||
@ -639,8 +796,9 @@ function addEdi(){
|
|||||||
function savehand() {
|
function savehand() {
|
||||||
addformRef.value?.validate((e:any) => {
|
addformRef.value?.validate((e:any) => {
|
||||||
if (!e) {
|
if (!e) {
|
||||||
|
formData.fileId = formData.fileId.replace(/,$/,'')
|
||||||
addEdi().then(() => {
|
addEdi().then(() => {
|
||||||
message.success(isstype.value == 1?'新增':'修改')
|
message.success(isstype.value == 1?'新增成功':'修改成功')
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
getlist()
|
getlist()
|
||||||
addModel.value = false
|
addModel.value = false
|
||||||
@ -697,37 +855,136 @@ const issaddrules = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function renderlabe() {}
|
// function renderlabe() {}
|
||||||
function issuehand() {
|
// function issuehand() {
|
||||||
issueModel.value = true
|
// issueModel.value = true
|
||||||
// if(chearr.value.length > 0){
|
// // if(chearr.value.length > 0){
|
||||||
// batchIssue(chearr.value).then(() => {
|
// // batchIssue(chearr.value).then(() => {
|
||||||
// message.success('操作成功')
|
// // message.success('操作成功')
|
||||||
// })
|
// // })
|
||||||
// }else{
|
// // }else{
|
||||||
// message.error('请勾选设备')
|
// // message.error('请勾选设备')
|
||||||
// }
|
// // }
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
let treeData:any = []
|
||||||
|
let xfsbvalue = ref<Array<string | number>>([])
|
||||||
|
let renderSourceList:any = ''
|
||||||
|
|
||||||
|
let options = ref<any>([]) //flattenTree(createData())
|
||||||
|
|
||||||
|
function flattenTree(list: undefined | any[]) {
|
||||||
|
const result: any[] = []
|
||||||
|
function flatten(_list: any[] = []) {
|
||||||
|
_list.forEach((item) => {
|
||||||
|
//result.push(item)
|
||||||
|
if(item.childList){
|
||||||
|
flatten(item.childList)
|
||||||
|
}else{
|
||||||
|
result.push(item)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
flatten(list)
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
let issarr:any[] = []
|
||||||
|
let imgCode = ref<any>('')
|
||||||
|
function tranupdate(v:any) {
|
||||||
|
issarr = []
|
||||||
|
if(v.length > 0){
|
||||||
|
v.forEach((n:any) => {
|
||||||
|
if(n.split('-').length == 3){
|
||||||
|
issarr.push(n)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let imgid = ''
|
||||||
|
function issuehand(row:any) {
|
||||||
|
issueModel.value = true
|
||||||
|
issarr = []
|
||||||
|
imgid = row.id
|
||||||
|
imgCode.value = row.drawingCode
|
||||||
}
|
}
|
||||||
|
|
||||||
const issformRef = ref()
|
|
||||||
|
|
||||||
function isssavehand() {
|
function isssavehand() {
|
||||||
issformRef.value?.validate((e:any) => {
|
if(issarr.length > 0){
|
||||||
if (!e) {
|
drawingIssue({
|
||||||
|
id:imgid,
|
||||||
|
twCode:issarr
|
||||||
|
}).then(() => {
|
||||||
message.success('操作成功')
|
message.success('操作成功')
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
getlist()
|
getlist()
|
||||||
issueModel.value = false
|
issueModel.value = false
|
||||||
},1500)
|
},1500)
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
message.warning('请选择设备')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const issformRef = ref()
|
||||||
|
|
||||||
|
// function isssavehand() {
|
||||||
|
// issformRef.value?.validate((e:any) => {
|
||||||
|
// if (!e) {
|
||||||
|
// message.success('操作成功')
|
||||||
|
// setTimeout(() => {
|
||||||
|
// getlist()
|
||||||
|
// issueModel.value = false
|
||||||
|
// },1500)
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }
|
||||||
|
|
||||||
|
function handleExport() {
|
||||||
|
|
||||||
|
|
||||||
|
exportdraFile({}).then(rps => {
|
||||||
|
const url = window.URL.createObjectURL(rps)
|
||||||
|
const link = document.createElement('a')
|
||||||
|
link.href = url
|
||||||
|
link.download = '图文数据.xlsx'
|
||||||
|
link.click()
|
||||||
|
window.URL.revokeObjectURL(url)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
getlist()
|
getlist()
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
//加载任务树
|
||||||
|
opertree().then(rps => {
|
||||||
|
treeData = rps
|
||||||
|
options.value = flattenTree(treeData)
|
||||||
|
renderSourceList = function (obj:any) {
|
||||||
|
return h(NTree, {
|
||||||
|
style: 'margin: 0 4px;',
|
||||||
|
keyField: 'value',
|
||||||
|
checkable: true,
|
||||||
|
selectable: false,
|
||||||
|
blockLine: true,
|
||||||
|
checkOnClick: true,
|
||||||
|
childrenField:'childList',
|
||||||
|
data: treeData,
|
||||||
|
cascade:true,
|
||||||
|
defaultExpandAll:true,
|
||||||
|
pattern:obj.pattern,
|
||||||
|
checkedKeys: xfsbvalue.value,
|
||||||
|
onUpdateCheckedKeys: (checkedKeys:any) => {
|
||||||
|
obj.onCheck(checkedKeys)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
//loadDictOptions()
|
//loadDictOptions()
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|||||||
@ -16,7 +16,7 @@ export default defineConfig({
|
|||||||
emptyOutDir: true
|
emptyOutDir: true
|
||||||
},
|
},
|
||||||
server: {
|
server: {
|
||||||
host: true,
|
// host:'192.168.12.11', //true,
|
||||||
port: 3000,
|
port: 3000,
|
||||||
proxy: {
|
proxy: {
|
||||||
'/api': {
|
'/api': {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user