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.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'

View File

@ -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,37 @@ 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(id:any) {
return request({
url: `sys/file/${id}`,
method: 'get'
})
}

View File

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

View File

@ -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) {

View File

@ -217,14 +217,21 @@
style="width: 600px" 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;">NC代码编号</div>
<div style="padding: 2px 5px;border: 1px solid #50a5b7;border-radius: 0 6px 6px 0;">{{ ncCode }}</div>
</div>
<n-transfer <n-transfer
v-model:value="value" v-model:value="xfsbvalue"
style="height:500px;" style="height:500px;"
:options="options" :options="options"
:render-source-list="renderSourceList" :render-source-list="renderSourceList"
source-filterable source-filterable
@update:value="tranupdate" @update:value="tranupdate"
/> />
<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>
@ -236,6 +243,7 @@
</template> </template>
</n-modal> </n-modal>
</div> </div>
@ -280,7 +288,8 @@ import {
issuecopy, issuecopy,
generateNccode, generateNccode,
opertree, opertree,
exportNccode exportNccode,
deleteIssue
} from '@/api/nccode' } from '@/api/nccode'
const dialog = useDialog() const dialog = useDialog()
@ -302,8 +311,8 @@ const searchForm = reactive({
page: 1, page: 1,
pageSize: 20, pageSize: 20,
ncCode:'', ncCode:'',
ncName:'', ncName:''
status:1 //status:1
}) })
@ -385,7 +394,7 @@ const columns = [
key:"isIssued", key:"isIssued",
minWidth:150, minWidth:150,
render(row:any) { render(row:any) {
if(row.isIssued == 1){ if(row.isSued== 1){
return '已下发' return '已下发'
} }
return '未下发' return '未下发'
@ -401,7 +410,7 @@ const columns = [
{ {
align:"center", align:"center",
title:"下发人", title:"下发人",
key:"issueBy", key:"issueName",
minWidth:150 minWidth:150
}, },
{ {
@ -426,7 +435,7 @@ const columns = [
type:'info', type:'info',
ghost:true, ghost:true,
onClick: () => { onClick: () => {
issuehand() issuehand(row)
} }, } },
{ default: () => '下发'} { default: () => '下发'}
)) ))
@ -505,7 +514,8 @@ function search() {
// //
function reset() { function reset() {
searchForm.ncCode = ''
searchForm.ncName = ''
} }
// //
@ -596,11 +606,6 @@ 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(type == 1 || type == 3){
generateNccode().then(rps => {
formData.ncCode = rps
})
}
if(row){ if(row){
formData.id = row.id formData.id = row.id
@ -633,6 +638,11 @@ function addhand(type:any,row?:any) {
// formData.issueBy = '' // formData.issueBy = ''
formData.remark = '' formData.remark = ''
} }
if(type == 1 || type == 3){
generateNccode().then(rps => {
formData.ncCode = rps
})
}
} }
function addEdi(){ function addEdi(){
@ -694,7 +704,7 @@ function delhand() {
//let issequiplist = ref<any>([]) //let issequiplist = ref<any>([])
let treeData:any = [] let treeData:any = []
let value = ref<Array<string | number>>([]) let xfsbvalue = ref<Array<string | number>>([])
let renderSourceList:any = '' let renderSourceList:any = ''
let options = ref<any>([]) //flattenTree(createData()) 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 issueModel = ref(false)
// let issformData = reactive<any>({ // let issformData = reactive<any>({
@ -739,30 +745,44 @@ let issueModel = ref(false)
function renderlabe() {} let issarr:any[] = []
let ncCode = ref<any>('')
function issuehand() { function tranupdate(v:any) {
issarr = []
issueModel.value = true 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() { function isssavehand() {
issformRef.value?.validate((e:any) => { if(issarr.length > 0){
if (!e) { batchIssue({
batchIssue('').then(() => { ncCode:ncid,
ncCodeList:issarr
}).then(() => {
message.success('操作成功') message.success('操作成功')
setTimeout(() => { setTimeout(() => {
getlist() getlist()
issueModel.value = false issueModel.value = false
},1500) },1500)
}) })
}else{
message.warning('请选择设备')
} }
})
} }
// //
//let selectedIds = ref<any>([]) //let selectedIds = ref<any>([])
@ -783,10 +803,10 @@ function handleExport() {
getlist() getlist()
// //
async function handleDispatchRecord(row:ncCode){ // async function handleDispatchRecord(row:ncCode){
const ncId = row.id // const ncId = row.id
// ncDispatchRecords.value = await // // ncDispatchRecords.value = await
} // }
onMounted(() => { onMounted(() => {
@ -795,7 +815,6 @@ onMounted(() => {
opertree().then(rps => { opertree().then(rps => {
treeData = rps treeData = rps
options.value = flattenTree(treeData) options.value = flattenTree(treeData)
console.log(rps,'112')
renderSourceList = function (obj:any) { renderSourceList = function (obj:any) {
return h(NTree, { return h(NTree, {
style: 'margin: 0 4px;', style: 'margin: 0 4px;',
@ -809,10 +828,9 @@ onMounted(() => {
cascade:true, cascade:true,
defaultExpandAll:true, defaultExpandAll:true,
pattern:obj.pattern, pattern:obj.pattern,
checkedKeys: value.value, checkedKeys: xfsbvalue.value,
onUpdateCheckedKeys: (checkedKeys: Array<string | number>) => { onUpdateCheckedKeys: (checkedKeys:any) => {
obj.onCheck(checkedKeys) obj.onCheck(checkedKeys)
console.log(value.value,'tree')
} }
}) })
} }

View File

@ -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,99 @@
</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
: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 +237,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>
@ -259,6 +294,7 @@ import {
NImage, NImage,
NPagination, NPagination,
NGrid, NGrid,
NTree,
// NGi, // NGi,
NTag, NTag,
useMessage, useMessage,
@ -270,7 +306,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'
@ -280,11 +317,18 @@ import {
editDrawing, editDrawing,
drawinglist, drawinglist,
drawingIssue, drawingIssue,
deleteDrawing deleteDrawing,
generateDFCode,
exportdraFile,
opertree,
filelist
} 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()
@ -292,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)
@ -303,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:''
}) })
@ -322,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:"状态",
@ -386,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 '未下发'
@ -421,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: () => '下发'}
)) ))
@ -444,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',
@ -455,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',
@ -463,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)
}) })
}, },
@ -503,7 +560,9 @@ function search() {
// //
function reset() { function reset() {
searchForm.drawingCode = ''
searchForm.drawingName = ''
searchForm.drawingVersion = ''
} }
// //
@ -531,7 +590,6 @@ function handlePageSizeChange(pageSize: number) {
} }
// // // //
// async function loadDictOptions() { // async function loadDictOptions() {
// //qcCancelLoading = true // //qcCancelLoading = true
@ -541,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)
@ -549,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:'', //PLMID
plmVersion:'', //PLM
plmStatus:'', //PLM
status:1, //1- 0- status:1, //1- 0-
remark:'' // // drawingName:'', //
// drawingVersion:'', //
// processCode:'', //
// processName:'', //
// filePath:'', //
// fileName:'', //
// fileSize:'', //
// fileType:'', //
// plmDocId:'', //PLMID
// 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){
@ -578,60 +685,97 @@ 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 = v.data.id+''
}
console.log(flist.value,'flist')
}
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 filelist(row.fileId).then(rps => {
formData.fileType = row.fileType if(rps){
formData.plmDocId = row.plmDocId flist.value.push({
formData.plmVersion = row.plmVersion id: rps.id,
formData.plmStatus = row.plmStatus name: rps.originalName,
formData.status = row.status status: 'finished', // 'finished'
formData.remark = row.remark 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{ }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(){
@ -645,7 +789,7 @@ function savehand() {
addformRef.value?.validate((e:any) => { addformRef.value?.validate((e:any) => {
if (!e) { if (!e) {
addEdi().then(() => { addEdi().then(() => {
message.success(isstype.value == 1?'新增':'修改') message.success(isstype.value == 1?'新增成功':'修改成功')
setTimeout(() => { setTimeout(() => {
getlist() getlist()
addModel.value = false addModel.value = false
@ -702,37 +846,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()
}) })

View File

@ -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': {