This commit is contained in:
andy 2026-07-29 16:22:42 +08:00
parent 77aae7a280
commit 32036b1160
7 changed files with 596 additions and 300 deletions

View File

@ -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.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 = '/dev-api'
VITE_APP_BASE_API = '/api'

View File

@ -23,7 +23,7 @@ export function editDrawing(data:any) {
//列表
export function drawinglist(params:any) {
return request({
url: `/biz/ncCode/page`,
url: `/biz/drawingFile/page`,
method: 'get',
params
})
@ -45,3 +45,37 @@ export function deleteDrawing(ids:any) {
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(id:any) {
return request({
url: `sys/file/${id}`,
method: 'get'
})
}

View File

@ -88,6 +88,7 @@ export function exportNccode(params:any) {
return request({
url: `biz/ncCode/export`,
method: 'get',
responseType: 'blob',
params
})
}

View File

@ -1,7 +1,7 @@
import axios, { type AxiosInstance, type AxiosRequestConfig, type AxiosResponse } from 'axios'
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响应结构
interface ApiResponse<T = any> {
@ -116,7 +116,8 @@ async function decryptResponseData(data: string): Promise<any> {
// 创建axios实例
// 后端 API 统一使用 /api 前缀
const service: AxiosInstance = axios.create({
baseURL:'/api',
//baseURL:'/api',
baseURL:BASE_API,
timeout: 30000
})
@ -158,7 +159,6 @@ service.interceptors.response.use(
return response.data
}
const res = response.data
if (res.code !== 200) {

View File

@ -210,32 +210,40 @@
</n-modal>
<!--下发-->
<n-modal
v-model:show="issueModel"
title="下发"
preset="card"
style="width: 600px"
:mask-closable="false"
>
<n-transfer
v-model:value="value"
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>
<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>
</template>
</n-modal>
</div>
@ -280,7 +288,8 @@ import {
issuecopy,
generateNccode,
opertree,
exportNccode
exportNccode,
deleteIssue
} from '@/api/nccode'
const dialog = useDialog()
@ -302,8 +311,8 @@ const searchForm = reactive({
page: 1,
pageSize: 20,
ncCode:'',
ncName:'',
status:1
ncName:''
//status:1
})
@ -385,7 +394,7 @@ const columns = [
key:"isIssued",
minWidth:150,
render(row:any) {
if(row.isIssued == 1){
if(row.isSued== 1){
return '已下发'
}
return '未下发'
@ -401,7 +410,7 @@ const columns = [
{
align:"center",
title:"下发人",
key:"issueBy",
key:"issueName",
minWidth:150
},
{
@ -426,7 +435,7 @@ const columns = [
type:'info',
ghost:true,
onClick: () => {
issuehand()
issuehand(row)
} },
{ default: () => '下发'}
))
@ -505,7 +514,8 @@ function search() {
//
function reset() {
searchForm.ncCode = ''
searchForm.ncName = ''
}
//
@ -558,9 +568,9 @@ let formData = reactive<any>({
deviceId:'', //ID
deviceName:'', //
status:1, //1- 0-
// isIssued:1, //1- 0-
// issueTime:null, //
// issueBy:'', //
// isIssued:1, //1- 0-
// issueTime:null, //
// issueBy:'', //
remark:'' //
})
const addrules = {
@ -596,11 +606,6 @@ function addhand(type:any,row?:any) {
addModel.value = true
formData.value?.restoreValidation()
isstype.value = type
if(type == 1 || type == 3){
generateNccode().then(rps => {
formData.ncCode = rps
})
}
if(row){
formData.id = row.id
@ -633,6 +638,11 @@ function addhand(type:any,row?:any) {
// formData.issueBy = ''
formData.remark = ''
}
if(type == 1 || type == 3){
generateNccode().then(rps => {
formData.ncCode = rps
})
}
}
function addEdi(){
@ -694,7 +704,7 @@ function delhand() {
//let issequiplist = ref<any>([])
let treeData:any = []
let value = ref<Array<string | number>>([])
let xfsbvalue = ref<Array<string | number>>([])
let renderSourceList:any = ''
let options = ref<any>([]) //flattenTree(createData())
@ -716,10 +726,6 @@ function flattenTree(list: undefined | any[]) {
}
function tranupdate(v:any) {
console.log(v)
}
//
let issueModel = ref(false)
// let issformData = reactive<any>({
@ -739,30 +745,44 @@ let issueModel = ref(false)
function renderlabe() {}
function issuehand() {
issueModel.value = true
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
}
const issformRef = ref()
function isssavehand() {
issformRef.value?.validate((e:any) => {
if (!e) {
batchIssue('').then(() => {
message.success('操作成功')
setTimeout(() => {
getlist()
issueModel.value = false
},1500)
})
}
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>([])
@ -783,10 +803,10 @@ function handleExport() {
getlist()
//
async function handleDispatchRecord(row:ncCode){
const ncId = row.id
// ncDispatchRecords.value = await
}
// async function handleDispatchRecord(row:ncCode){
// const ncId = row.id
// // ncDispatchRecords.value = await
// }
onMounted(() => {
@ -795,7 +815,6 @@ onMounted(() => {
opertree().then(rps => {
treeData = rps
options.value = flattenTree(treeData)
console.log(rps,'112')
renderSourceList = function (obj:any) {
return h(NTree, {
style: 'margin: 0 4px;',
@ -809,10 +828,9 @@ onMounted(() => {
cascade:true,
defaultExpandAll:true,
pattern:obj.pattern,
checkedKeys: value.value,
onUpdateCheckedKeys: (checkedKeys: Array<string | number>) => {
checkedKeys: xfsbvalue.value,
onUpdateCheckedKeys: (checkedKeys:any) => {
obj.onCheck(checkedKeys)
console.log(value.value,'tree')
}
})
}

View File

@ -10,15 +10,15 @@
label-placement="left"
>
<n-form-item label="图编号">
<n-input v-model:value="searchForm.ncCode" placeholder="请输入图纸编号" />
<n-form-item label="图编号">
<n-input v-model:value="searchForm.drawingCode" placeholder="请输入图文编号" />
</n-form-item>
<n-form-item label="图纸名称">
<n-input v-model:value="searchForm.ncName" placeholder="请输入图纸名称" />
</n-form-item>
<n-form-item label="工序编码">
<n-input v-model:value="searchForm.ncName" placeholder="请输入工序编码" />
<!-- <n-form-item label="图文名称">
<n-input v-model:value="searchForm.drawingName" placeholder="请输入图文名称" />
</n-form-item>
<n-form-item label="图文版本">
<n-input v-model:value="searchForm.drawingVersion" placeholder="请输入图文版本" />
</n-form-item> -->
<n-space>
@ -35,7 +35,7 @@
</div>
<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>
<n-icon>
<AddOutline />
@ -51,7 +51,7 @@
</template>
删除
</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>
<n-icon>
<ArrowDownCircleOutline />
@ -75,7 +75,7 @@
@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
v-model:page="pagination.page"
v-model:page-size="pagination.pageSize"
@ -110,29 +110,8 @@
>
<n-grid :cols="1" :x-gap="24">
<n-gi>
<n-form-item path="drawingCode" label="图纸编号">
<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 path="drawingCode" label="图文编号">
<n-input v-model:value="formData.drawingCode" disabled placeholder="自动生成" />
</n-form-item>
</n-gi>
<n-gi>
@ -149,23 +128,99 @@
</n-radio-group>
</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 path="gxname" label="上传图纸">
<n-form-item label="图文版本">
<n-input v-model:value="formData.drawingVersion" placeholder="请输入图文版本" />
</n-form-item>
</n-gi> -->
<!-- <n-gi>
<n-form-item path="processId" label="工序名称">
<n-select
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-gi>
<n-gi>
<n-form-item path="fileId" label="上传文件">
<!--:default-file-list="fileList"-->
<n-upload
action="https://www.mocky.io/v2/5e4bafc63100007100d8b70f"
<!-- <n-upload
:action="URL"
:headers="{
Authorization:TOKEN
}"
list-type="image-card"
>
点击上传
</n-upload> -->
<!-- @before-upload ="flchang"
@change="flchang"
@remove="flchang"-->
<n-upload
directory-dnd
: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-gi>
<n-form-item path="gxname" label="备注">
<n-input type="textarea" v-model:value="formData.remark" placeholder="请输入备注" />
</n-form-item>
</n-gi>
</n-gi> -->
</n-grid>
</n-form>
<template #footer>
@ -182,61 +237,41 @@
</n-modal>
<!--下发-->
<n-modal
v-model:show="issueModel"
title="下发"
preset="card"
style="width: 500px"
:mask-closable="false"
>
<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"
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;">图文编号</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-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>
<n-space justify="end">
<n-button @click="issueModel = false">取消</n-button>
<n-button
type="primary"
@click="isssavehand"
>确认</n-button>
</n-space>
</template>
</n-modal>
<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>
@ -259,6 +294,7 @@ import {
NImage,
NPagination,
NGrid,
NTree,
// NGi,
NTag,
useMessage,
@ -270,7 +306,8 @@ import {
SearchOutline,
RefreshOutline,
AddOutline,
ArrowDownCircleOutline
ArrowDownCircleOutline,
CloudUploadOutline
} from '@vicons/ionicons5'
import { useUserStore } from '@/stores/user'
@ -280,11 +317,18 @@ import {
editDrawing,
drawinglist,
drawingIssue,
deleteDrawing
deleteDrawing,
generateDFCode,
exportdraFile,
opertree,
filelist
} from '@/api/illustrated'
import {
basicProcessPlanApi
} from '@/api/basicProcessPlan'
const URL = `${import.meta.env.VITE_APP_BASE_API}/sys/file/upload`
const dialog = useDialog()
@ -292,6 +336,8 @@ const message = useMessage()
const userStore = useUserStore()
const TOKEN = userStore.token
//
const hasPermission = (permission: string) => userStore.hasPermission(permission)
@ -303,9 +349,9 @@ const hasPermission = (permission: string) => userStore.hasPermission(permission
const searchForm = reactive({
page: 1,
pageSize: 20,
ncCode:'',
ncName:'',
status:1
drawingCode:'',
drawingName:'',
drawingVersion:''
})
@ -322,52 +368,60 @@ const pagination = reactive({
})
const columns = [
{
align:"center",
title:"图纸编号",
key:"materialName",
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",
title:"图文编号",
key:"drawingCode",
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",
title:"状态",
@ -386,7 +440,7 @@ const columns = [
key:"isIssued",
minWidth:150,
render(row:any) {
if(row.status == 1){
if(row.isIssued == 1){
return '已下发'
}
return '未下发'
@ -421,13 +475,13 @@ const columns = [
render(row:any) {
const buttons:any = []
if(hasPermission('biz:ncCode:issue')){
if(hasPermission('biz:drawingFile:issue')){
buttons.push(h(NButton, {
size: 'small',
type:'info',
ghost:true,
onClick: () => {
issuehand()
issuehand(row)
} },
{ default: () => '下发'}
))
@ -444,7 +498,7 @@ const columns = [
// ))
// }
if(hasPermission('biz:ncCode:edit')){
if(hasPermission('biz:drawingFile:edit')){
buttons.push(h(NButton, {
size: 'small',
type:'primary',
@ -455,7 +509,7 @@ const columns = [
{ default: () => '编辑'}
))
}
if(hasPermission('biz:ncCode:remove')){
if(hasPermission('biz:drawingFile:remove')){
buttons.push(h(NButton, {
size: 'small',
type:'error',
@ -463,13 +517,16 @@ const columns = [
onClick: () => {
dialog.warning({
title: '警告',
content: `你确定删除NC代码编号为:${row.ncCode}的数据`,
content: `你确定删除图文编号为:${row.drawingCode}的数据`,
positiveText: '确定',
negativeText: '取消',
//draggable: true,
onPositiveClick: () => {
deleteDrawing(row.id).then(() => {
message.success('操作成功')
setTimeout(() => {
search()
},1000)
})
},
@ -503,7 +560,9 @@ function search() {
//
function reset() {
searchForm.drawingCode = ''
searchForm.drawingName = ''
searchForm.drawingVersion = ''
}
//
@ -531,7 +590,6 @@ function handlePageSizeChange(pageSize: number) {
}
// //
// async function loadDictOptions() {
// //qcCancelLoading = true
@ -541,6 +599,49 @@ function handlePageSizeChange(pageSize: number) {
// }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)
@ -549,25 +650,31 @@ const addformRef = ref()
let formData = reactive<any>({
id:'',
drawingCode:'', //
drawingName:'', //
drawingVersion:'', //
processRouteStepId:'', //ID
processCode:'', //
processName:'', //
filePath:'', //
fileName:'', //
fileSize:'', //
fileType:'', //
plmDocId:'', //PLMID
plmVersion:'', //PLM
plmStatus:'', //PLM
status:1, //1- 0-
remark:'' //
drawingCode:'', //
processId:'', //ID
drawingType:0, //0 1
fileId:'', //id
status:1, //1- 0-
// drawingName:'', //
// drawingVersion:'', //
// processCode:'', //
// processName:'', //
// filePath:'', //
// fileName:'', //
// fileSize:'', //
// fileType:'', //
// plmDocId:'', //PLMID
// plmVersion:'', //PLM
// plmStatus:'', //PLM
// isIssued:1, //1- 0-
// issueTime:'', //
// issueBy:'', //
// remark:'' //
})
const addrules = {
drawingCode: [
{ required: true, message: '请输入图纸编号', trigger: 'blur' },
{ required: true, message: '请输入图编号', trigger: 'blur' },
// {
// validator(rule:any,value: any) {
// if(value > pauseform.qcNum){
@ -578,60 +685,97 @@ const addrules = {
// trigger: ['blur']
// }
],
drawingName:[
{ required: true, message: '请输入图纸名称', trigger: 'blur' }
processId:[
{ required: true, message: '请选择工序', trigger: 'blur' }
],
ncContent:[
{ required: true, message: '请输入NC代码内容', trigger: 'blur' }
fileId:[
{ 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 = v.data.id+''
}
console.log(flist.value,'flist')
}
let isstype = ref<any>(1)
const cztype = reactive<any>({
1:'新增',
2:'编辑'
})
let selval = ref<any>('')
function addhand(type:any,row?:any) {
addModel.value = true
formData.value?.restoreValidation()
isstype.value = type
if(row){
//slehand('')
formData.id = row.id
formData.drawingCode = row.drawingCode
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
formData.processId = row.processId
formData.drawingType = row.drawingType
formData.fileId = row.fileId
selval.value = row.processId
flist.value.splice(0)
filelist(row.fileId).then(rps => {
if(rps){
flist.value.push({
id: rps.id,
name: rps.originalName,
status: 'finished', // 'finished'
url: rps.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{
formData.id = ''
formData.drawingCode = ''
formData.drawingName = ''
formData.drawingVersion = ''
formData.processRouteStepId = ''
formData.processCode = ''
formData.processName = ''
formData.filePath = ''
formData.fileName = ''
formData.fileSize = ''
formData.fileType = ''
formData.plmDocId = ''
formData.plmVersion = ''
formData.plmStatus = ''
formData.status = ''
formData.remark = ''
formData.processId = ''
formData.drawingType = 0
formData.status = 1
formData.fileId = ''
flist.value.splice(0)
// formData.drawingCode = ''
// formData.drawingName = ''
// formData.drawingVersion = ''
// formData.processRouteStepId = ''
// formData.processCode = ''
// formData.processName = ''
// formData.filePath = ''
// formData.fileName = ''
// formData.fileSize = ''
// formData.fileType = ''
// formData.plmDocId = ''
// formData.plmVersion = ''
// formData.plmStatus = ''
// formData.status = 1
// formData.remark = ''
generateDFCode().then(rps => {
formData.drawingCode = rps
})
}
}
function addEdi(){
@ -645,7 +789,7 @@ function savehand() {
addformRef.value?.validate((e:any) => {
if (!e) {
addEdi().then(() => {
message.success(isstype.value == 1?'新增':'修改')
message.success(isstype.value == 1?'新增成功':'修改成功')
setTimeout(() => {
getlist()
addModel.value = false
@ -702,37 +846,136 @@ const issaddrules = {
}
function renderlabe() {}
function issuehand() {
// function renderlabe() {}
// function issuehand() {
// issueModel.value = true
// // if(chearr.value.length > 0){
// // batchIssue(chearr.value).then(() => {
// // message.success('')
// // })
// // }else{
// // 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
// if(chearr.value.length > 0){
// batchIssue(chearr.value).then(() => {
// message.success('')
// })
// }else{
// message.error('')
// }
issarr = []
imgid = row.id
imgCode.value = row.drawingCode
}
function isssavehand() {
if(issarr.length > 0){
drawingIssue({
id:imgid,
twCode:issarr
}).then(() => {
message.success('操作成功')
setTimeout(() => {
getlist()
issueModel.value = false
},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 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()
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()
})

View File

@ -16,7 +16,7 @@ export default defineConfig({
emptyOutDir: true
},
server: {
host: true,
host:'192.168.12.11', //true,
port: 3000,
proxy: {
'/api': {