待办、消息提醒等页面开发

dev-scheduling
jinna 1 month ago
parent 45ec177b92
commit c15a97fcef
  1. 234
      src/views/desk/completedTasks.vue
  2. 259
      src/views/desk/myMessage.vue
  3. 178
      src/views/desk/todoList.vue
  4. 20
      src/views/oem/baseTemplate/index.vue
  5. 4
      src/views/oem/facInnerApproval/approvalDialog.vue
  6. 691
      src/views/oem/facInnerApproval/index.vue
  7. 4
      src/views/oem/oemApproval/approvalDialog.vue
  8. 61
      src/views/oem/oemApproval/index.vue
  9. 129
      src/views/wel/components/notice.vue

@ -0,0 +1,234 @@
<template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="form"
v-model:page="page"
@search-change="searchChange"
@search-reset="searchReset"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #title="{row}">
<span @click="hanleView(row)" style="color:#284c89;cursor:pointer">{{row.title}}</span>
</template>
<template #status="{row}">
<el-tag v-if="row.status === 1" type="success">审核通过</el-tag>
<el-tag v-if="row.status === 2" type="danger">审核拒绝</el-tag>
</template>
</avue-crud>
</basic-container>
</template>
<script>
export default {
data() {
return {
form: {},
selectionList: [],
query: {},
loading: true,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
columnSort: true,
tip: false,
height: "auto",
align: "center",
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: false,
viewBtn: false,
delBtn: true,
editBtn: true,
editBtnText: "修改",
editBtnIcon: " ",
delBtnIcon: " ",
addBtn: false,
labelWidth: 120,
searchLabelWidth: 120,
menu: true,
menuWidth: 200,
dialogWidth: 600,
dialogClickModal: false,
searchEnter: true,
excelBtn: true,
gridBtn: false,
searchShowBtn: false,
showOverflowTooltip: true,
searchLabelPosition: "left",
searchLabelPosition: "left",
searchGutter: 24,
searchSpan: 6,
menuAlign: "left",
gridBtn: false,
searchMenuPosition: "right",
addBtnIcon: " ",
viewBtnIcon: " ",
delBtnIcon: " ",
editBtnIcon: " ",
menu:false,
column: [
{
label: '类型',
prop: 'type',
sortable: false,
type: 'select',
filter: true,
span: 12,
search: true,
searchLabelWidth: 90,
dicData: [
{ label: '外协审批', value: 1 },
{ label: '仓管审批', value: 2 },
{ label: '槽液审批', value: 3 },
],
},
{
label: '标题',
prop: 'title',
sortable: false,
filter: true,
span: 12,
search: true,
searchLabelWidth: 90,
},
{
label: '创建人',
prop: 'createUser',
sortable: false,
filter: true,
span: 12,
search: false,
searchLabelWidth: 90,
},
{
label: '申请时间',
prop: 'createTime',
type: 'date',
searchRange: true,
sortable: false,
filter: true,
span: 12,
search: true,
hide:true,
searchLabelWidth: 90,
},
{
label: '创建时间',
prop: 'createTime',
sortable: false,
filter: true,
span: 12,
search: false,
searchLabelWidth: 90,
},
{
label: '状态',
prop: 'status',
sortable: false,
type:"select",
dicData: [
{
label: '审批通过',
value: '1',
},
{
label: '审批驳回',
value: '2',
},
],
filter: true,
span: 12,
search: true,
searchLabelWidth: 90,
},
{
label: '审批时间',
prop: 'approvalTime',
sortable: false,
filter: true,
span: 12,
search: false,
searchLabelWidth: 90,
},
],
},
data: [],
};
},
methods: {
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad();
done();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad();
},
onLoad(page, params = {}) {
this.loading = true;
this.data = [
{
id: 1,
type: 1,
title: '请审核张三提交的外协审批流程',
createUser: '张三',
status:1,
approvalTime:"2026-01-18 22:15:30",
createTime: '2026-01-05 09:06:32',
},
{
id: 2,
type: 2,
title: '请审核李四提交的仓管审批流程',
createUser: '张三',
status:1,
approvalTime:"2026-01-18 22:15:30",
createTime: '2026-01-12 09:06:32',
},
{
id: 3,
type: 3,
title: '请审核王五提交的槽液审批流程',
createUser: '张三',
status:2,
approvalTime:"2026-01-18 22:15:30",
createTime: '2026-01-15 09:06:32',
},
];
this.page.total = this.data.length;
this.loading = false;
},
},
};
</script>
<style></style>

@ -0,0 +1,259 @@
<template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="form"
v-model:page="page"
@search-change="searchChange"
@search-reset="searchReset"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@selection-change="selectionChange"
@on-load="onLoad"
>
<template #status="{row}">
<el-tag v-if="row.status === 1" type="info">已读</el-tag>
<el-tag v-if="row.status === 2" type="success">未读</el-tag>
</template>
<template #menu-left>
<el-button type="primary" @click="handleRead">标记已读</el-button>
</template>
<template #content="{row}">
<span @click="hanleView(row)" style="color:#284c89;cursor:pointer">{{row.content}}</span>
</template>
</avue-crud>
</basic-container>
</template>
<script>
export default {
data() {
return {
form: {},
selectionList: [],
query: {},
loading: true,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
columnSort: true,
tip: false,
height: "auto",
align: "center",
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: true,
viewBtn: false,
delBtn: true,
editBtn: true,
editBtnText: "修改",
editBtnIcon: " ",
delBtnIcon: " ",
addBtn: false,
labelWidth: 120,
searchLabelWidth: 120,
menu: true,
menuWidth: 200,
// dialogWidth: 600,
dialogClickModal: false,
searchEnter: true,
excelBtn: true,
gridBtn: false,
searchShowBtn: false,
showOverflowTooltip: true,
searchLabelPosition: "left",
searchLabelPosition: "left",
searchGutter: 24,
searchSpan: 6,
menuAlign: "left",
gridBtn: false,
searchMenuPosition: "right",
addBtnIcon: " ",
viewBtnIcon: " ",
delBtnIcon: " ",
editBtnIcon: " ",
menu:false,
column: [
{
label: '标题',
prop: 'title',
sortable: false,
filter: true,
span: 12,
search: true,
searchLabelWidth: 90,
display:false,
},
{
label: '内容',
prop: 'content',
sortable: false,
filter: true,
span: 12,
width:600,
search: false,
overHidden:true,
searchLabelWidth: 90,
display:false,
},
{
label: '消息类型',
prop: 'type',
sortable: false,
type: 'select',
filter: true,
span: 24,
search: true,
searchLabelWidth: 90,
dicData: [
{ label: '系统消息', value: 1 },
{ label: '业务消息', value: 2 },
],
},
{
label: '状态',
prop: 'status',
sortable: false,
type:"select",
display:false,
dicData: [
{
label: '已读',
value: '1',
},
{
label: '未读',
value: '2',
},
],
filter: true,
span: 12,
search: true,
searchLabelWidth: 90,
},
{
label: '发送时间',
prop: 'approvalTime',
type: 'date',
format:"YYYY-MM-DD",
valueFormat:"YYYY-MM-DD",
searchRange:true,
sortable: false,
filter: true,
search: true,
span:24,
searchLabelWidth: 90,
},
{
label: '内容',
prop: 'content',
component: 'avue-ueditor',
action: '/blade-resource/oss/endpoint/put-file',
propsHttp: {
res: 'data',
url: 'link',
},
hide: true,
minRows: 4,
span: 24,
},
],
},
data: [],
};
},
methods: {
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad();
done();
},
selectionChange(list){
this.selectionList = list;
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad();
},
hanleView(row){
this.$refs.crud.rowView(row)
},
handleRead(){
if(this.selectionList.length == 0){
this.$message.error('请至少选择一条数据!');
return
}
let tmp = this.selectionList.find(item => item.status == 1)
if(tmp){
this.$message.error('请选择状态为【未读】的数据!')
return
}
},
onLoad(page, params = {}) {
this.loading = true;
this.data = [
{
id: 1,
type: 1,
title: '请审核张三提交的外协审批流程',
content:"审批信息审批信息审批信息审批信息审批信息审批信息审批信息审批信息审批信息审批信息",
createUser: '张三',
status:1,
approvalTime:"2026-01-18 22:15:30",
createTime: '2026-01-05 09:06:32',
},
{
id: 2,
type: 2,
title: '请审核李四提交的仓管审批流程',
content:"审批信息审批信息审批信息审批信息审批信息审批信息审批信息审批信息审批信息审批信息",
createUser: '张三',
status:1,
approvalTime:"2026-01-18 22:15:30",
createTime: '2026-01-12 09:06:32',
},
{
id: 3,
type: 1,
title: '请审核王五提交的槽液审批流程',
content:"审批信息审批信息审批信息审批信息审批信息审批信息审批信息审批信息审批信息审批信息",
createUser: '张三',
status:2,
approvalTime:"2026-01-18 22:15:30",
createTime: '2026-01-15 09:06:32',
},
];
this.page.total = this.data.length;
this.loading = false;
},
},
};
</script>
<style></style>

@ -0,0 +1,178 @@
<template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
ref="crud"
v-model="form"
v-model:page="page"
@search-change="searchChange"
@search-reset="searchReset"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #title="{row}">
<span @click="hanleView(row)" style="color:#284c89;cursor:pointer">{{row.title}}</span>
</template>
</avue-crud>
</basic-container>
</template>
<script>
export default {
data() {
return {
form: {},
selectionList: [],
query: {},
loading: true,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
height: 'auto',
calcHeight: 32,
tip: false,
searchShow: true,
searchMenuSpan: 6,
border: true,
index: true,
viewBtn: true,
editBtn: false,
addBtn: false,
delBtn: false,
menuWidth: 120,
dialogType: 'drawer',
searchLabelPosition: 'left',
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menu:false,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
searchShowBtn: false,
align: 'center',
column: [
{
label: '类型',
prop: 'type',
sortable: false,
type: 'select',
filter: true,
span: 12,
search: true,
searchLabelWidth: 90,
dicData: [
{ label: '外协审批', value: 1 },
{ label: '仓管审批', value: 2 },
{ label: '槽液审批', value: 3 },
],
},
{
label: '标题',
prop: 'title',
sortable: false,
filter: true,
span: 12,
search: true,
searchLabelWidth: 90,
},
{
label: '创建人',
prop: 'createUser',
sortable: false,
filter: true,
span: 12,
search: false,
searchLabelWidth: 90,
},
{
label: '申请时间',
prop: 'createTime',
type: 'date',
searchRange: true,
sortable: false,
filter: true,
span: 12,
search: true,
hide:true,
searchLabelWidth: 90,
},
{
label: '创建时间',
prop: 'createTime',
sortable: false,
filter: true,
span: 12,
search: false,
searchLabelWidth: 90,
},
],
},
data: [],
};
},
methods: {
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad();
done();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad();
},
onLoad(page, params = {}) {
this.loading = true;
this.data = [
{
id: 1,
type: 1,
title: '请审核张三提交的外协审批流程',
createUser: '张三',
createTime: '2026-01-05 09:06:32',
},
{
id: 2,
type: 2,
title: '请审核李四提交的仓管审批流程',
createUser: '张三',
createTime: '2026-01-12 09:06:32',
},
{
id: 3,
type: 3,
title: '请审核王五提交的槽液审批流程',
createUser: '张三',
createTime: '2026-01-15 09:06:32',
},
];
this.page.total = this.data.length;
this.loading = false;
},
},
};
</script>
<style></style>

@ -101,14 +101,18 @@ export default {
search: true,
searchLabelWidth: 80,
type:'select',
dicData:[
{
label:'镀金'
},
{
label:'镀银'
}
]
dicUrl:"/api/blade-desk/BA/craftAbility/findList",
props:{
label:"caName",value:"id"
}
// dicData:[
// {
// label:''
// },
// {
// label:''
// }
// ]
},
{
label: '厂家',

@ -18,6 +18,10 @@ export default {
type: Boolean,
default: false
},
woId:{
type: String,
default: ''
}
},
data() {
return {

@ -6,6 +6,7 @@
:data="data"
v-model="form"
v-model:page="page"
v-model:search="search"
ref="crud"
@row-del="rowDel"
@search-change="searchChange"
@ -17,22 +18,24 @@
@on-load="onLoad"
>
<template #menu-left>
<el-button type="primary" @click="approval()">批量审批</el-button>
<el-button type="primary" @click="handleApproval('batch')">批量审批</el-button>
</template>
<template #menu-right> </template>
<template #menu="scope">
<el-button type="text" @click="approval(scope.row)">审批</el-button>
<el-button type="text" @click="handleApproval('one',scope.row)">审批</el-button>
</template>
</avue-crud>
<approvalDialog
v-if="isOpen"
:woId="woId"
:showDialog="isOpen"
@closeDialog="closeDialog"
></approvalDialog>
</basic-container>
</template>
<script>
import {getList,oemApproval} from "@/api/outsourcingManagement/oemApproval"
import approvalDialog from "./approvalDialog.vue";
export default {
components: {
@ -41,6 +44,10 @@ export default {
data() {
return {
selectionList: [],
woId:'',
loading:false,
query:{},
search:{},
option: {
height: "auto",
calcHeight: 32,
@ -97,7 +104,7 @@ export default {
filter: true,
span: 12,
search: true,
width: 120,
width: 180,
searchLabelWidth: 90,
},
{
@ -108,7 +115,7 @@ export default {
filter: true,
span: 12,
search: true,
width: 120,
width: 180,
},
{
label: "批次号",
@ -163,6 +170,10 @@ export default {
{
label: "建立时间",
prop: "createTime",
type: "date",
searchRange: true,
format: "YYYY-MM-DD",
valueFormat: "YYYY-MM-DD",
sortable: true,
filter: true,
span: 12,
@ -180,7 +191,7 @@ export default {
},
{
label: "审核状态",
prop: "runStatusTitle",
prop: "approvalStatus",
sortable: true,
filter: true,
span: 12,
@ -192,11 +203,11 @@ export default {
dicData: [
{
label: "待审核",
value: 1,
value: 2,
},
{
label: "审核通过",
value: 2,
value: 4,
},
{
label: "审核不通过",
@ -253,13 +264,39 @@ export default {
isOpen: false,
};
},
created(){
this.search.approvalStatus = 2
this.query = this.search;
},
methods: {
approval(row) {
searchChange(params, done){
this.query = params;
this.page.currentPage = 1
this.onLoad()
done()
},
searchReset(){
this.search.approvalStatus = 2
this.query = this.search;
this.onLoad()
},
currentChange(currentPage){
this.page.currentPage = currentPage
},
sizeChange(pageSize){
this.page.pageSize = pageSize
},
handleApproval(type,row) {
console.log('row--------',row)
if(!row && this.selectionList.length == 0){
if(type == 'batch' && this.selectionList.length == 0){
this.$message.error("请至少选择一条数据");
return
}
if(type == 'batch'){
this.woId = this.selectionList.map(item => item.id).join(',')
}else{
this.woId = row.id
}
this.isOpen = true;
},
closeDialog(val) {
@ -285,316 +322,332 @@ export default {
},
onLoad() {
this.loading = true;
this.data = [
{
approvalMan: null,
approvalMemo: null,
approvalTime: null,
collaborate: true,
createMan: {
userId: 541,
userName: "崔殿龙",
},
createTime: "2024-01-22 09:48:54",
deliverKey: null,
inCustomer: null,
inTeam: null,
keyValue: 8246,
memo: "11111",
outCustomer: null,
outTeam: {
tsCode: "006",
tsId: 66,
tsName: "化学镀镍一班郭家梁",
},
prWorkOrder: {
approvalStatus: 2,
batchArea: 43.48,
batchNo: "Y0382304283",
bsOemCustomer: null,
ca: "E386-化学镀镍",
cardNo: "1016870429",
closeMan: null,
closeTime: null,
collaborate: false,
collaborateText: "否",
createTime: "2023-04-14 18:19:35",
currentBsOemCustomer: null,
currentMakeTeam: {
tsCode: "006",
tsId: 66,
tsName: "化学镀镍一班郭家梁",
},
demandDate: "2023-04-18",
dispatcher: {
userId: 355,
userName: "07188",
},
frontProcedureSet: null,
handoverTime: null,
hrTypeBool: null,
inventoryQty: 0.0,
jcName: null,
keyValue: 2485,
lastInstoreTime: null,
lossQty: 0,
mainProcessingUnit: "化学镀镍一班郭家梁",
makeQty: 100.0,
makeTeam: {
tsCode: "006",
tsId: 66,
tsName: "化学镀镍一班郭家梁",
},
makeUnit: "化学镀镍一班郭家梁",
meetCycle: 0,
memo: null,
mesCardNo: null,
moCode: null,
moLocal: null,
nextBsOemCustomer: null,
nextMakeTeam: {
tsCode: "006",
tsId: 66,
tsName: "化学镀镍一班郭家梁",
},
nextOrders: "0010",
nextProcedureSet: {
assist: false,
assistTitle: "否",
createMan: {
userId: 1,
userName: "admin",
},
createTime: "2022-11-15 10:30:45",
cycle: 0.0,
cyropactorControl: true,
deleted: false,
eleRate: true,
eleStream: true,
keyValue: 7,
mainProcess: true,
mainProcessTitle: "是",
niValue: true,
phValue: true,
ppsCode: "003",
ppsId: 7,
ppsName: "化学镀镍",
special: false,
specialTitle: "否",
team: null,
updateTime: "2022-11-15 10:30:45",
vSpeed: true,
},
notInQty: 100.0,
nowWorkCenter: {
area: 13000.0,
batchNo: null,
bigBatch: false,
bsJfCenter: {
createMan: {
userId: 1,
userName: "admin",
},
createTime: "2024-12-09 00:00:00",
deleted: false,
jcCode: "RBZX",
jcId: 1,
jcName: "热表中心",
keyValue: 1,
updateTime: "2024-12-09 00:00:00",
},
checkout: false,
craftAbility: "化学镀镍",
createMan: {
userId: 1,
userName: "admin",
},
createTime: "2023-02-06 12:31:36",
deleted: false,
describe: null,
endPoint: null,
keyValue: 81,
leaderUser: {
userId: 541,
userName: "崔殿龙",
},
limitType: 0,
processes: "上挂、下挂、交检、化学镀镍、喷砂",
quantity: null,
roundCycle: null,
saturation: 85.0,
sign: "4",
startPoint: null,
team: "化学镀镍一班崔胜伟、化学镀镍一班郭家梁",
updateTime: "2023-03-06 18:42:47",
wcCode: "001",
wcId: 81,
wcName: "化学镀镍作业中心",
whetherPlate: false,
},
oem: false,
oemOut: true,
oemType: -1,
oldRunStatus: null,
orderMarkTitle: "热表中心",
orderWoCode: "WO-221296443-R06",
orderWoCodeDeliverKey: null,
orders: "0005",
outTime: null,
pgrId: null,
pickingStatus: 0,
pickingStatusTitle: "未领取",
pjYieldOrder: {
batchNo: "Y0382304283",
bsProcedureQua: null,
businessType: 1,
businessTypeTitle: "热表中心",
cardNo: "1016870429",
craftId: null,
curStatus: 0,
curStatusTitle: "待接收",
custodian: "杨肖肖",
demandDate: "2023-06-16",
dsCraft: null,
dsPart: null,
entrustDept: "采购与物流中心(成件)",
failureMan: {
userId: 326,
userName: "02051",
},
failureMemo: "分派成功!",
failureTime: null,
fatherYoId: null,
keyValue: 156703,
manualIncrease: false,
memo: "XXXX",
newlevFlag: null,
nextRoam: null,
nextRoamName: null,
partCode: "21E8-154-1516-E9",
partName: "18-线夹",
pdmUrl: null,
planUser: "白洁",
plate: "XXX",
poArea: 0.4348,
poCode: "WO-221296443",
poMemo: null,
poProdLine: null,
poQty: 100.0,
primaryCraft: "库1-2(机加)-4(表)-库2",
priority: 1,
prodIdent: "JII",
produceBool: false,
productType: "XXXX",
recseqno: null,
releaseDate: "2022-12-17",
reworkCode: null,
reworkMemo: null,
reworkNo: null,
roamName: null,
roamNo: "B5286963",
siteWork: false,
sjKitPreparation: null,
sjMoldPreparation: null,
syncTime: "2023-04-14 14:42:49",
useDept: "制造一部(38999)",
useDeptcode: null,
yieldType: 1,
yoCode: "WX-2212694911",
yoId: 156703,
},
planEndDate: "2023-04-18 18:19:35",
planner: {
userId: 355,
userName: "07188",
},
plateGoodsCode: null,
plateSingleQuota: 0.0,
plateSingleQuotaTotal: 0.0,
printCode: "HZQD20230509001",
printFlag: true,
printMan: {
userId: 541,
userName: "崔殿龙",
},
printTime: "2023-05-09 19:08:13",
priority: 1,
priorityTitle: "正常",
procedureSet: {
assist: false,
assistTitle: "否",
createMan: {
userId: 1,
userName: "admin",
},
createTime: "2022-11-15 10:30:29",
cycle: 0.0,
cyropactorControl: false,
deleted: false,
eleRate: true,
eleStream: true,
keyValue: 6,
mainProcess: true,
mainProcessTitle: "是",
niValue: false,
phValue: false,
ppsCode: "002",
ppsId: 6,
ppsName: "上挂",
special: false,
specialTitle: "否",
team: null,
updateTime: "2022-11-15 10:30:29",
vSpeed: false,
},
processingUnit: "化学镀镍一班郭家梁",
producycle: 4,
pushFlag: true,
putStoreTime: null,
qcReworkCode: null,
quotaExceptional: false,
reInStore: false,
readStatus: null,
readStatusTiTle: "未准备",
recDept: null,
receptionTime: null,
reworkCode: null,
reworkMemo: null,
reworkNo: null,
rsCode: null,
runStatus: 3,
runStatusTitle: "加工中",
schedStatus: 0,
scrapQty: 0.0,
sendDownTime: "2023-04-14 18:19:35",
smBatch: "是",
subList: null,
subRunStatus: null,
testQty: 0,
tools: null,
totalArea: 43.48,
woCode: "WO-221296443-R06",
woId: 2485,
wpId: 14788,
ybCode: null,
ybLocal: null,
},
printFlag: false,
printMan: null,
runStatus: 2,
runStatusTitle: "审批中",
runType: 1,
runTypeTitle: "转外协",
systemData: false,
woCode: "WO-221296443-R06",
worId: 8246,
},
];
this.page.total = this.data.length;
this.loading = false;
setTimeout(() => {
this.selectionClear();
}, 500);
let params = {
...this.query,
startTime:(this.query.createTime && this.query.createTime.length != 0) ? this.query.createTime[0] : undefined,
endTime:(this.query.createTime && this.query.createTime.length != 0) ? this.query.createTime[1] : undefined,
}
const {createTime,...searchParam} = params
getList({
current:this.page.currentPage,
size:this.page.pageSize,
runType:2,
...searchParam,
}).then(res =>{
this.data = res.data.data.records
this.page.total = res.data.data.total
this.loading = false
})
// this.data = [
// {
// approvalMan: null,
// approvalMemo: null,
// approvalTime: null,
// collaborate: true,
// createMan: {
// userId: 541,
// userName: "殿",
// },
// createTime: "2024-01-22 09:48:54",
// deliverKey: null,
// inCustomer: null,
// inTeam: null,
// keyValue: 8246,
// memo: "11111",
// outCustomer: null,
// outTeam: {
// tsCode: "006",
// tsId: 66,
// tsName: "",
// },
// prWorkOrder: {
// approvalStatus: 2,
// batchArea: 43.48,
// batchNo: "Y0382304283",
// bsOemCustomer: null,
// ca: "E386-",
// cardNo: "1016870429",
// closeMan: null,
// closeTime: null,
// collaborate: false,
// collaborateText: "",
// createTime: "2023-04-14 18:19:35",
// currentBsOemCustomer: null,
// currentMakeTeam: {
// tsCode: "006",
// tsId: 66,
// tsName: "",
// },
// demandDate: "2023-04-18",
// dispatcher: {
// userId: 355,
// userName: "07188",
// },
// frontProcedureSet: null,
// handoverTime: null,
// hrTypeBool: null,
// inventoryQty: 0.0,
// jcName: null,
// keyValue: 2485,
// lastInstoreTime: null,
// lossQty: 0,
// mainProcessingUnit: "",
// makeQty: 100.0,
// makeTeam: {
// tsCode: "006",
// tsId: 66,
// tsName: "",
// },
// makeUnit: "",
// meetCycle: 0,
// memo: null,
// mesCardNo: null,
// moCode: null,
// moLocal: null,
// nextBsOemCustomer: null,
// nextMakeTeam: {
// tsCode: "006",
// tsId: 66,
// tsName: "",
// },
// nextOrders: "0010",
// nextProcedureSet: {
// assist: false,
// assistTitle: "",
// createMan: {
// userId: 1,
// userName: "admin",
// },
// createTime: "2022-11-15 10:30:45",
// cycle: 0.0,
// cyropactorControl: true,
// deleted: false,
// eleRate: true,
// eleStream: true,
// keyValue: 7,
// mainProcess: true,
// mainProcessTitle: "",
// niValue: true,
// phValue: true,
// ppsCode: "003",
// ppsId: 7,
// ppsName: "",
// special: false,
// specialTitle: "",
// team: null,
// updateTime: "2022-11-15 10:30:45",
// vSpeed: true,
// },
// notInQty: 100.0,
// nowWorkCenter: {
// area: 13000.0,
// batchNo: null,
// bigBatch: false,
// bsJfCenter: {
// createMan: {
// userId: 1,
// userName: "admin",
// },
// createTime: "2024-12-09 00:00:00",
// deleted: false,
// jcCode: "RBZX",
// jcId: 1,
// jcName: "",
// keyValue: 1,
// updateTime: "2024-12-09 00:00:00",
// },
// checkout: false,
// craftAbility: "",
// createMan: {
// userId: 1,
// userName: "admin",
// },
// createTime: "2023-02-06 12:31:36",
// deleted: false,
// describe: null,
// endPoint: null,
// keyValue: 81,
// leaderUser: {
// userId: 541,
// userName: "殿",
// },
// limitType: 0,
// processes: "",
// quantity: null,
// roundCycle: null,
// saturation: 85.0,
// sign: "4",
// startPoint: null,
// team: "",
// updateTime: "2023-03-06 18:42:47",
// wcCode: "001",
// wcId: 81,
// wcName: "",
// whetherPlate: false,
// },
// oem: false,
// oemOut: true,
// oemType: -1,
// oldRunStatus: null,
// orderMarkTitle: "",
// orderWoCode: "WO-221296443-R06",
// orderWoCodeDeliverKey: null,
// orders: "0005",
// outTime: null,
// pgrId: null,
// pickingStatus: 0,
// pickingStatusTitle: "",
// pjYieldOrder: {
// batchNo: "Y0382304283",
// bsProcedureQua: null,
// businessType: 1,
// businessTypeTitle: "",
// cardNo: "1016870429",
// craftId: null,
// curStatus: 0,
// curStatusTitle: "",
// custodian: "",
// demandDate: "2023-06-16",
// dsCraft: null,
// dsPart: null,
// entrustDept: "()",
// failureMan: {
// userId: 326,
// userName: "02051",
// },
// failureMemo: "",
// failureTime: null,
// fatherYoId: null,
// keyValue: 156703,
// manualIncrease: false,
// memo: "XXXX",
// newlevFlag: null,
// nextRoam: null,
// nextRoamName: null,
// partCode: "21E8-154-1516-E9",
// partName: "18-线",
// pdmUrl: null,
// planUser: "",
// plate: "XXX",
// poArea: 0.4348,
// poCode: "WO-221296443",
// poMemo: null,
// poProdLine: null,
// poQty: 100.0,
// primaryCraft: "1-2-4-2",
// priority: 1,
// prodIdent: "JII",
// produceBool: false,
// productType: "XXXX",
// recseqno: null,
// releaseDate: "2022-12-17",
// reworkCode: null,
// reworkMemo: null,
// reworkNo: null,
// roamName: null,
// roamNo: "B5286963",
// siteWork: false,
// sjKitPreparation: null,
// sjMoldPreparation: null,
// syncTime: "2023-04-14 14:42:49",
// useDept: "(38999)",
// useDeptcode: null,
// yieldType: 1,
// yoCode: "WX-2212694911",
// yoId: 156703,
// },
// planEndDate: "2023-04-18 18:19:35",
// planner: {
// userId: 355,
// userName: "07188",
// },
// plateGoodsCode: null,
// plateSingleQuota: 0.0,
// plateSingleQuotaTotal: 0.0,
// printCode: "HZQD20230509001",
// printFlag: true,
// printMan: {
// userId: 541,
// userName: "殿",
// },
// printTime: "2023-05-09 19:08:13",
// priority: 1,
// priorityTitle: "",
// procedureSet: {
// assist: false,
// assistTitle: "",
// createMan: {
// userId: 1,
// userName: "admin",
// },
// createTime: "2022-11-15 10:30:29",
// cycle: 0.0,
// cyropactorControl: false,
// deleted: false,
// eleRate: true,
// eleStream: true,
// keyValue: 6,
// mainProcess: true,
// mainProcessTitle: "",
// niValue: false,
// phValue: false,
// ppsCode: "002",
// ppsId: 6,
// ppsName: "",
// special: false,
// specialTitle: "",
// team: null,
// updateTime: "2022-11-15 10:30:29",
// vSpeed: false,
// },
// processingUnit: "",
// producycle: 4,
// pushFlag: true,
// putStoreTime: null,
// qcReworkCode: null,
// quotaExceptional: false,
// reInStore: false,
// readStatus: null,
// readStatusTiTle: "",
// recDept: null,
// receptionTime: null,
// reworkCode: null,
// reworkMemo: null,
// reworkNo: null,
// rsCode: null,
// runStatus: 3,
// runStatusTitle: "",
// schedStatus: 0,
// scrapQty: 0.0,
// sendDownTime: "2023-04-14 18:19:35",
// smBatch: "",
// subList: null,
// subRunStatus: null,
// testQty: 0,
// tools: null,
// totalArea: 43.48,
// woCode: "WO-221296443-R06",
// woId: 2485,
// wpId: 14788,
// ybCode: null,
// ybLocal: null,
// },
// printFlag: false,
// printMan: null,
// runStatus: 2,
// runStatusTitle: "",
// runType: 1,
// runTypeTitle: "",
// systemData: false,
// woCode: "WO-221296443-R06",
// worId: 8246,
// },
// ];
// this.page.total = this.data.length;
// this.loading = false;
// setTimeout(() => {
// this.selectionClear();
// }, 500);
},
},
};

@ -18,6 +18,10 @@ export default {
type: Boolean,
default: false
},
woId:{
type: String,
default: ''
}
},
data() {
return {

@ -6,6 +6,7 @@
:data="data"
v-model="form"
v-model:page="page"
v-model:search="search"
ref="crud"
@row-del="rowDel"
@search-change="searchChange"
@ -17,11 +18,11 @@
@on-load="onLoad"
>
<template #menu-left>
<el-button type="primary" @click="approval()">批量审批</el-button>
<el-button type="primary" @click="handleApproval('batch')">批量审批</el-button>
</template>
<template #menu-right> </template>
<template #menu="scope">
<el-button type="text" size="mini" @click="approval(scope.row.tbId)"
<el-button type="text" size="mini" @click="handleApproval('one',scope.row)"
>审批</el-button
>
</template>
@ -30,6 +31,7 @@
<approvalDialog
v-if="isOpen"
:showDialog="isOpen"
:woId="woId"
@closeDialog="closeDialog"
></approvalDialog>
</basic-container>
@ -98,7 +100,7 @@ export default {
filter: true,
span: 12,
search: true,
width: 120,
width: 180,
searchLabelWidth: 90,
},
{
@ -109,7 +111,7 @@ export default {
filter: true,
span: 12,
search: true,
width: 120,
width: 180,
},
{
label: "批次号",
@ -164,6 +166,10 @@ export default {
{
label: "建立时间",
prop: "createTime",
type: "date",
searchRange:true,
format: "YYYY-MM-DD",
valueFormat: "YYYY-MM-DD",
sortable: true,
filter: true,
span: 12,
@ -181,7 +187,7 @@ export default {
},
{
label: "审核状态",
prop: "runStatusTitle",
prop: "approvalStatus",
sortable: true,
filter: true,
span: 12,
@ -189,15 +195,14 @@ export default {
width: 120,
type: "select",
searchOrder: 5,
searchValue: 1,
dicData: [
{
label: "待审核",
value: 1,
value: 2,
},
{
label: "审核通过",
value: 2,
value: 4,
},
{
label: "审核不通过",
@ -246,6 +251,7 @@ export default {
],
},
form: {},
search:{},
query:{},
loading:false,
page: {
@ -254,15 +260,42 @@ export default {
total: 0,
},
isOpen: false,
woId:'',
};
},
created(){
this.search.approvalStatus = 2
this.query = this.search;
},
methods: {
approval(row) {
searchChange(params, done){
this.query = params;
this.page.currentPage = 1
this.onLoad()
done()
},
searchReset(){
this.search.approvalStatus = 2
this.query = this.search;
this.onLoad()
},
currentChange(currentPage){
this.page.currentPage = currentPage
},
sizeChange(pageSize){
this.page.pageSize = pageSize
},
handleApproval(type,row) {
console.log('row--------',row)
if(!row && this.selectionList.length == 0){
if(type == 'batch' && this.selectionList.length == 0){
this.$message.error("请至少选择一条数据");
return
}
if(type == 'batch'){
this.woId = this.selectionList.map(item => item.id).join(',')
}else{
this.woId = row.id
}
this.isOpen = true;
},
closeDialog(val) {
@ -288,11 +321,17 @@ export default {
},
onLoad() {
this.loading = true;
let params = {
...this.query,
startTime:(this.query.createTime && this.query.createTime.length != 0) ? this.query.createTime[0] : undefined,
endTime:(this.query.createTime && this.query.createTime.length != 0) ? this.query.createTime[1] : undefined,
}
const {createTime,...searchParam} = params
getList({
current:this.page.currentPage,
size:this.page.pageSize,
runType:1,
...this.query,
...searchParam,
}).then(res =>{
this.data = res.data.data.records
this.page.total = res.data.data.total

@ -1,25 +1,93 @@
<template>
<div class="notice_box">
<div class="title_box">
<span class="title">公告</span>
<span style="color: #409EFF;font-size: 14px;cursor: pointer;" @click="loadMore">查看更多</span>
<span class="title">通知中心</span>
<!-- <span style="color: #409EFF;font-size: 14px;cursor: pointer;" @click="loadMore">查看更多</span> -->
</div>
<div class="notice_data">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="我的待办" name="backlog">
<div class="back_box">
<div class="back_item" v-for="item in backlogData" :key="item.id">
<div class="back_top">
<div class="title">{{item.title}}</div>
<div>{{ item.createTime.substring(0,10) == today ? item.createTime.substring(11,16)
: item.createTime.substring(0,4) == year ? item.createTime.substring(5,10) : item.createTime.substring(0,10)}}
</div>
</div>
<div class="bottom">
{{item.content}}
</div>
</div>
</div>
<!-- <div class="btn_box">查看更多</div> -->
<el-button v-if="backlogData.length >= 3" type="primary" @click="handleMore(1)">查看更多</el-button>
</el-tab-pane>
<el-tab-pane label="消息通知" name="notice">
<div class="back_box">
<div class="back_item" v-for="item in noticeArr" :key="item.id">
<div class="back_top">
<div class="title">{{item.title}}</div>
<div>{{ item.createTime.substring(0,10) == today ? item.createTime.substring(11,16)
: item.createTime.substring(0,4) == year ? item.createTime.substring(5,10) : item.createTime.substring(0,10)}}
</div>
</div>
<div class="bottom">
{{item.content}}
</div>
</div>
</div>
<!-- <div class="btn_box">查看更多</div> -->
<el-button v-if="noticeArr.length >= 3" type="primary" @click="handleMore(2)">查看更多</el-button>
</el-tab-pane>
</el-tabs>
<!-- <div class="notice_data">
<div class="notice_data_item" v-for="item in noticeArr" :key="item.content">
<el-tag :type="item.category == 1 ? 'primary' : 'success'">{{ item.categoryName }}</el-tag>
<div class="notice_title">{{ item.title }}</div>
</div>
</div>
</div> -->
</div>
</template>
<script>
import {getList} from '@/api/desk/notice'
import router from '@/router/';
import {dateFormat} from '@/utils/date'
export default {
data(){
return{
today:dateFormat(new Date(),"yyyy-MM-dd"),
year:dateFormat(new Date(),"yyyy"),
activeName:"backlog",
backlogData:[
{
id:'1963789019681054722',
title:"审批请求待处理",
content:"张伟提交的转外协申请,等待您的审批",
createTime:"2026-03-06 09:05:05",
},
{
id:'1963789019681054722',
title:"审批请求待处理",
content:"张伟提交的转外协申请,等待您的审批",
createTime:"2026-03-05 09:05:05",
},
{
id:'1963789019681054722',
title:"审批请求待处理",
content:"张伟提交的转外协申请,等待您的审批",
createTime:"2024-03-05 09:05:05",
},
// {
// id:'1963789019681054722',
// title:"",
// content:"",
// createTime:"2024-03-05 09:05:05",
// }
],
noticeArr:[
{
"id": "1963789019681054722",
@ -63,6 +131,13 @@ export default {
loadMore(){
this.$router.push('/desk/notice');
},
handleMore(type){
if(type == 1){
this.$router.push('/desk/todoList');
}else{
this.$router.push('/desk/myMessage');
}
}
}
}
</script>
@ -77,11 +152,57 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid #eee;
padding-bottom: 10px;
.title{
font-weight: 550;
}
}
::v-deep .el-tabs__nav-wrap::after{
height: 1px !important;
}
.back_box{
padding: 0 10px;
.back_item{
border-bottom: 1px solid #eee;
margin-bottom: 10px;
.back_top{
display: flex;
justify-content: space-between;
.title{
font-weight: 450;
color: #1F2937;
width: 70%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.time{
color: #6B7280;
}
}
.bottom{
margin: 10px 0;
color: #4B5563;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
.el-button{
width: 280px;
height: 36px;
margin-left: 15px;
// margin-top: 20px;
position: fixed;
bottom: 35px;
}
.notice_data{
padding: 20px 0;

Loading…
Cancel
Save