diff --git a/pages.json b/pages.json
index 4f0ecb9..5234d2a 100644
--- a/pages.json
+++ b/pages.json
@@ -339,6 +339,18 @@
"bounce": "none"
}
}
+ },
+ {
+ "path" : "pages/documentary/ex-factory",
+ "style" :
+ {
+ "navigationStyle": "custom",
+ "enablePullDownRefresh": false,
+ "disableScroll": true,
+ "app-plus": {
+ "bounce": "none"
+ }
+ }
}
],
"globalStyle": {
diff --git a/pages/documentary/detail.vue b/pages/documentary/detail.vue
index 4940a18..f394577 100644
--- a/pages/documentary/detail.vue
+++ b/pages/documentary/detail.vue
@@ -3,7 +3,7 @@
import { showToast } from 'vant';
import { ref, watch } from 'vue';
import { getAction, postAction, uploadAction } from '../../common/http';
-import { formatDate } from '../../utils/date';
+ import { formatDate } from '../../utils/date';
// 定义 props
defineProps<{
item ?: string;
@@ -16,26 +16,68 @@ import { formatDate } from '../../utils/date';
const specialPro = ref([] as any[])
const list = ref([] as any[])
const special = ref('' as any)
- const content = ref([] as any[])
- const form = ref({czrq:formatDate(new Date())} as any)
+ const getLog = ref([] as any[])
+ const form = ref({ czrq: formatDate(new Date()), yjxybrq: formatDate(new Date()) } as any)
onLoad(async (option : any) => {
if (option) {
try {
itemList.value = JSON.parse(option.item)
- if (itemList.value.sd === '门店') {
- processes.value = {}
+ if (itemList.value.sd === '门店' && !itemList.value.processes) {
+ let res : any = await getAction('/flowBind')
+ if (res.code === 200) {
+ let item = res.data.find((l : any) => l.craftName === itemList.value.craft)
+ let item2 = item.flows.find((l : any) => l.bind === "仅现货")
+ if (item2) {
+ let url = '/craftFlows/byName?name=' + item2.name
+ let res1 : any = await getAction(url)
+ if (res1.code === 200) {
+ processes.value = res1.data
+ } else {
+ showToast('暂无此工艺!')
+ }
+ } else {
+ showToast('暂无此工艺!')
+ }
+ }
} else {
processes.value = JSON.parse(itemList.value.processes)
}
- console.log(itemList.value);
indexData.value = processes.value.processes.findIndex((l : any) => l.name == itemList.value.zt)
- let name=processes.value.processes.find((l:any)=>l.name!=itemList.value.zt&&(l.necessary))
- postAction('/process/getNext',[itemList.value.zt,name.name]).then((res:any)=>{
- if(res.code===200){
- specialPro.value=res.data
+ let nameZt = ''
+ if (indexData.value > 0 && !processes.value.processes[indexData.value].id) {
+ nameZt = processes.value.processes[indexData.value - 1].name
+ } else if (indexData.value == 0 && !processes.value.processes[indexData.value].id) {
+ nameZt = '待进厂'
+ } else {
+ nameZt = itemList.value.zt
+ }
+ let name = processes.value.processes.find((l : any) => l.name != nameZt && (l.necessary))
+ postAction('/process/getNext', [nameZt, name ? name.name : '0x7c00']).then((res : any) => {
+ if (res.code === 200) {
+ specialPro.value = res.data
}
})
+ getAction('/tracking/getLog?id=' + itemList.value.subId).then((res : any) => {
+ if (res.code === 200) {
+ let index=false
+ processes.value.processes.forEach((m : any) => {
+ if (!m.id||!index) {
+ let a = res.data.find((l : any) => l.details.zt == m.name)
+ if (a) {
+ m.rq = a.details.form.czrq
+ }
+ } else {
+ index=true
+ let a = res.data.find((l : any) => l.details.zt == m.name && l.trackingLogId == itemList.value.id)
+ if (a) {
+ m.rq = a.details.form.czrq
+ }
+ }
+ })
+ }
+ })
+ console.log(processes.value);
} catch (error) {
console.error('Failed to parse item JSON:', error);
// 可以选择在这里显示错误消息给用户
@@ -43,27 +85,15 @@ import { formatDate } from '../../utils/date';
}
})
- watch(status, () => {
- if (status.value === '出厂') {
- postAction('/craftComment/getByIds', itemList.value.craftCmt.value).then((res : any) => {
- if (res.code === 200) {
- res.data.forEach((l : any) => {
- content.value = content.value.concat(l.content)
- })
- }
- })
- }
- })
-
const onClickLeft = () => {
history.back()
}
-
+
//选择框事件
const show = ref(false)
const dataType = ref()
- const chooseDate = (val:any) => {
- dataType.value=val
+ const chooseDate = (val : any) => {
+ dataType.value = val
show.value = true
}
//日期选择
@@ -71,18 +101,32 @@ import { formatDate } from '../../utils/date';
form.value[dataType.value] = formatDate(val)
show.value = false
}
-
+
const showPicker = ref(false)
const popuList = ref([] as any[])
const indexType = ref()
//选择框事件
- const choosePic = (index:any) => {
- indexType.value=index
+ const choosePic = (index : any) => {
+ indexType.value = index
showPicker.value = true
}
//选择框确认
const pickerConfirm = (val : any) => {
- list.value[indexType.value].value = val.selectedValues[0]
+ if (indexType.value === 'craftFlow') {
+ let url = '/craftFlows/byName?name=' + val.selectedValues[0]
+ getAction(url).then((res : any) => {
+ if (res.code === 200) {
+ craftFlowLc.value = JSON.stringify(res.data)
+ craftFlowLc.value.unshift({ name: special.value })
+ craftFlow.value = val.selectedValues[0]
+ } else {
+ showToast('请重新选择工艺流程!')
+ craftFlow.value = ''
+ }
+ })
+ } else {
+ list.value[indexType.value].value = val.selectedValues[0]
+ }
showPickerCancel()
}
//取消
@@ -91,10 +135,31 @@ import { formatDate } from '../../utils/date';
}
//弹窗开启事件
const handleOpen = () => {
- popuList.value = list.value[indexType.value].chooses.map((l:any)=>({text:l.value,value:l.value}))
+ if (indexType.value === 'craftFlow') {
+ popuList.value = flowList.value
+ let item = {} as any
+ flowList.value.forEach((l : any) => {
+ if (l.craftName === itemList.value.craft) {
+ item = l;
+ }
+ })
+ popuList.value = []
+ if (item.flows) {
+ item.flows.forEach((l : any) => {
+ if (itemList.value.sd === '门店' && l.bind === '仅现货') {
+ popuList.value.push({ value: l.name, text: l.name })
+ } else if (l.bind === '通用') {
+ popuList.value.push({ value: l.name, text: l.name })
+ }
+ })
+ }
+ } else {
+ popuList.value = list.value[indexType.value].chooses.map((l : any) => ({ text: l.value, value: l.value }))
+ }
}
const chooseStatus = (item : any, index : any) => {
+ if (indexData.value >= index) return
try {
special.value = ''
processes.value.processes.forEach((l : any, j : any) => {
@@ -106,9 +171,9 @@ import { formatDate } from '../../utils/date';
status.value = item.name
}
})
- getAction('/process/byName?name='+status.value).then((res:any)=>{
- if(res.code===200){
- list.value=res.data.evidence
+ getAction('/process/byName?name=' + status.value).then((res : any) => {
+ if (res.code === 200) {
+ list.value = res.data.evidence
}
})
} catch (err) {
@@ -118,47 +183,115 @@ import { formatDate } from '../../utils/date';
const showDialog = ref(false)
const contentType = ref([])
const bhList = ref([] as any[])
+ const czyy = ref()
+ const mls1 = ref([] as any[])
+ const mls2 = ref([] as any[])
+ const specialItem = ref()
+ const craftFlow = ref()
+ const craftFlowLc = ref()
+ const flowList = ref([] as any[])
//选择特殊工艺
- const chooseSpecial = (item:any) =>{
+ const chooseSpecial = (item : any) => {
special.value = item.name
- status.value=''
- let a=specialPro.value.find((l:any)=>l.name===item.name)
- list.value=a.evidence
- showDialog.value=true
+ specialItem.value = item
+ status.value = ''
+ let a = specialPro.value.find((l : any) => l.name === item.name)
+ list.value = a.evidence
+ showDialog.value = true
+ getAction('/flowBind').then((res : any) => {
+ if (res.code === 200) {
+ flowList.value = res.data
+ }
+ })
}
-
- const addBh = (item:any) =>{
- let index=bhList.value.findIndex((l:any)=>l===item.bh)
- if(index>=0){
- bhList.value.splice(index,1)
- }else{
- bhList.value.push(item.bh)
+
+ const addBh = (item : any, itemz : any) => {
+ let index = bhList.value.findIndex((l : any) => l.bh === item.bh && l.ms === item.ms)
+ if (index >= 0) {
+ bhList.value.splice(index, 1)
+ } else {
+ bhList.value.push({ ...item, mz: itemz.mz, sh: itemz.sh })
}
}
- const confirmSecond = () =>{
-
+ const confirmSecond = () => {
+ mls1.value = []
+ mls2.value = []
+ itemList.value.mls.forEach((l : any) => {
+ l.xxs.forEach((j : any) => {
+ let item = bhList.value.find((m : any) => m.mz == l.mz && m.sh == l.sh && m.bh == j.bh && m.ms == j.ms)
+ if (item) {
+ let item1 = mls2.value.find((k : any) => k.mz == item.mz && k.sh == item.sh)
+ if (item1) {
+ item1.xxs.push({ bh: item.bh, index: item.index, ms: item.ms })
+ } else {
+ mls2.value.push({ mz: item.mz, sh: item.sh, xxs: [{ bh: item.bh, index: item.index, ms: item.ms }] })
+ }
+ } else {
+ let item1 = mls1.value.find((k : any) => k.mz == l.mz && k.sh == l.sh)
+ if (item1) {
+ item1.xxs.push({ bh: j.bh, index: j.index, ms: j.ms })
+ } else {
+ mls1.value.push({ mz: l.mz, sh: l.sh, xxs: [{ bh: j.bh, index: j.index, ms: j.ms }] })
+ }
+ }
+ })
+ })
+ if (indexData.value == -1) {
+ if (!processes.value.processes[0].id) {
+ processes.value.processes[0] = { name: special.value, }
+ } else {
+ processes.value.processes.unshift({ name: special.value, })
+ }
+ } else {
+ if (!processes.value.processes[indexData.value + 1].id) {
+ processes.value.processes[indexData.value + 1] = { name: special.value, }
+ } else {
+ processes.value.processes.splice(indexData.value + 1, 0, { name: special.value, })
+ }
+ }
+ showDialog.value = false
}
-
+
//提交
- const onSubmit = () =>{
- console.log(list.value);
- if(!status.value&&!special.value) return showToast('请选择工序!')
- let data={
- trackingLogId:itemList.value.id,
- details:{
- zt:status.value,
- list:list.value,
- form:form.value,
- },
+ const onSubmit = () => {
+ if (!status.value && !special.value) return showToast('请选择工序!')
+ let data = {}
+ if (special.value) {
+ if (mls2.value.length == 0) return showToast(specialItem.value.nextStep + '未选择面料!')
+ data = {
+ trackingLogId: itemList.value.id,
+ subId: itemList.value.subId,
+ details: {
+ zt: special.value,
+ list: list.value,
+ form: form.value,
+ type: specialItem.value.nextStep,
+ mls1: mls1.value.length == 0 ? [] : mls1.value,
+ mls2: mls1.value.length == 0 ? [] : mls2.value,
+ craftFlow: craftFlow.value ? craftFlow.value : null,
+ processes: specialItem.value.nextStep == 'ChangeCraft' ? craftFlowLc.value : processes.value,
+ czyy: czyy.value,
+ },
+ }
+ } else if (status.value) {
+ data = {
+ subId: itemList.value.subId,
+ trackingLogId: itemList.value.id,
+ details: {
+ zt: indexData.value + 2 === processes.value.processes.length ? '待出厂' : status.value,
+ list: list.value,
+ form: form.value,
+ },
+ }
}
- postAction('/tracking',data).then((res:any)=>{
- if(res.code===200){
+ postAction('/tracking', data).then((res : any) => {
+ if (res.code === 200) {
showToast('提交成功!')
window.history.back()
}
})
}
-
+
const fileList = ref([] as any[])
const afterRead = (file : any) => {
file.status = 'uploading';
@@ -167,7 +300,7 @@ import { formatDate } from '../../utils/date';
if (res.code === 200) {
file.status = 'success';
file.message = '成功!';
- list.value[indexType.value].pic=res.data
+ list.value[indexType.value].pic = res.data
}
})
};
@@ -181,18 +314,18 @@ import { formatDate } from '../../utils/date';
-
+
- {{item.name}}
+ {{item.rq}}
-
+
- {{item.name}}
+ {{item.name}}
@@ -200,26 +333,30 @@ import { formatDate } from '../../utils/date';
-
+
-
-
+
+
-
+
-
+
-
+
@@ -229,44 +366,53 @@ import { formatDate } from '../../utils/date';
-
-
-
-
-
-
- 全部
-
-
-
- 如果无法辨认,请选择米数相近的面料
-
-
-
- {{item.mz}}
{{itemSecond.ms}}米/{{itemSecond.bh}}
+
+
+
+
+
+
+
+
+ 全部
+
+
+
+ 如果无法辨认,请选择米数相近的面料
+
+
+
+ {{item.mz}}
{{itemSecond.ms}}米/{{itemSecond.bh}}
+
+
+
+
+
-
-
-
-
-
+
+
+
-
+
-
+
@@ -292,7 +438,7 @@ import { formatDate } from '../../utils/date';
flex-direction: column;
text-align: center;
align-items: center;
- justify-content: center;
+ margin-top: 10rpx;
.btn {
border: 1rpx solid #d7d7d7;
@@ -300,6 +446,14 @@ import { formatDate } from '../../utils/date';
border-radius: 10rpx;
}
+ .btn2 {
+ border: 1rpx solid red;
+ padding: 10rpx 30rpx;
+ border-radius: 10rpx;
+ background-color: red;
+ color: #fff;
+ }
+
.btn1 {
border: 1rpx solid #169bd5;
padding: 10rpx 30rpx;
@@ -309,32 +463,33 @@ import { formatDate } from '../../utils/date';
}
}
}
-
+
.content {
flex: 1;
overflow-y: scroll;
font-size: 16px;
}
}
-
+
.grid-container1 {
display: grid;
grid-template-columns: 1fr 1fr;
padding: 10rpx 15rpx;
-
+
.grid-item {
display: flex;
flex-direction: column;
text-align: center;
align-items: center;
justify-content: center;
-
+ margin-top: 10rpx;
+
.btn {
border: 1rpx solid #d7d7d7;
padding: 10rpx 30rpx;
border-radius: 10rpx;
}
-
+
.btn1 {
border: 1rpx solid #169bd5;
padding: 10rpx 30rpx;
@@ -344,14 +499,15 @@ import { formatDate } from '../../utils/date';
}
}
}
-
+
.bor {
::v-deep .van-field__control {
border: 1px solid #d7d7d7;
text-align: center;
}
}
- .bor-n{
+
+ .bor-n {
::v-deep .van-field__control {
border-bottom: 1px solid #d7d7d7;
text-align: center;
@@ -369,6 +525,7 @@ import { formatDate } from '../../utils/date';
::v-deep .van-field__control {
font-size: 16px;
}
+
.footer-button {
margin: 20px;
display: flex;
diff --git a/pages/documentary/documentary.vue b/pages/documentary/documentary.vue
index 75cc676..3eaeb6b 100644
--- a/pages/documentary/documentary.vue
+++ b/pages/documentary/documentary.vue
@@ -279,9 +279,15 @@
}
//工序详情
const toDetile = (item:any) =>{
- uni.navigateTo({
- url:'./detail?item='+JSON.stringify(item)
- })
+ if(item.zt==='待出厂'){
+ uni.navigateTo({
+ url:'./ex-factory?item='+JSON.stringify(item)
+ })
+ }else{
+ uni.navigateTo({
+ url:'./detail?item='+JSON.stringify(item)
+ })
+ }
}
diff --git a/pages/documentary/ex-factory.vue b/pages/documentary/ex-factory.vue
new file mode 100644
index 0000000..4da982b
--- /dev/null
+++ b/pages/documentary/ex-factory.vue
@@ -0,0 +1,299 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+ {{item.rq}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 出厂
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/maintenance/p-details.vue b/pages/maintenance/p-details.vue
index 15cd7e2..1af2e5c 100644
--- a/pages/maintenance/p-details.vue
+++ b/pages/maintenance/p-details.vue
@@ -110,20 +110,20 @@
@click.stop="item.chooses.splice(index,1)" v-else />
-
-
-
- 是
- 否
-
-
-
+
+
+
+ 是
+ 否
+
+
+
-
+
出厂质检