Merge branch 'master' of http://www.koelndom.cn:13030/Huabao/FactorySystemWeb
commit
744180f92e
@ -1 +1,2 @@
|
|||||||
node_modules
|
node_modules
|
||||||
|
/dist
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
import{v as n}from"./index.b3f8b7f1.js";async function r(a){var t=[];return await n.post("/api/Common/GetBasicList",{FType:a}).then(e=>{t=e.Data.sort(function(s,o){return s.FOrder>o.FOrder})}),t}async function u(a,t){let e=0;return await n.post("/api/"+t+"/GetDataModel",a).then(s=>{e=s.Data}),e}async function l(a,t){let e=0;return await n.post("/api/"+t+"/UpdateDataModel",a).then(s=>{e=s.Data}),e}async function c(a,t){let e=0;return await n.post("/api/"+t+"/InsertDataModel",a).then(s=>{e=s.Data}),e}async function p(a,t){let e=0;return await n.post("/api/"+t+"/DeleteDataById",{FID:a.FID||a}).then(s=>{e=s.Data}),e}async function D(a,t){a=a||{FPageIndex:1,FPageSize:10};let e={};return await n.post("/api/"+t+"/GetPageList",a).then(s=>{e=s}),e}async function f(a,t){let e={};return await n.post("/api/"+t+"/Save",a).then(s=>{e=s}),e}async function m(a){let t="";return await n.post("/api/Common/GetTempFile",{FType:a||1}).then(e=>{t=e.Data}),t}async function C(a){let t={};return await n.post("/api/Common/CheckIsHasPower",a).then(e=>{t=e.Data}),t}async function d(a){let t={};return await n.post("/api/Common/GetDataCodeList",a).then(e=>{t=e.Data}),t}async function h(){let a={};return await n.post("/api/Common/GetConfigList",{}).then(t=>{a=t.Data}),a}async function y(a){let t={};return await n.post("/api/Common/GetConfigValue",{FID:a}).then(e=>{t=e.Data}),t}async function g(a){let t={};return await n.post("/api/Common/StateDataCode",{FID:a}).then(e=>{t=e.Data}),t}async function w(a){let t={};return await n.post("/api/Common/DeleteDataCode",{FID:a}).then(e=>{t=e.Data}),t}async function F(a){let t={};return await n.post("/api/Common/ChangeDataCode",a).then(e=>{t=e.Data}),t}export{u as a,d as b,r as c,f as d,C as e,m as f,D as g,p as h,c as i,F as j,h as k,w as l,y as m,g as s,l as u};
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
import{v as o}from"./index.b3f8b7f1.js";async function c(){var t=[];return await o.post("/api/Factory/GetFactoryList").then(a=>{t=a.Data}),t}async function i(t,a){let e=0;return await o.post("/api/Factory/CheckHasCode",{FID:t,FCode:a}).then(r=>{e=r.Data}),e}export{i as c,c as g};
|
|
||||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
import{_ as C,r as h,u as k,g as w,a as L,o as r,c as p,w as n,b as H,d as s,e as t,t as i,f as D,h as S,n as N,F as z,i as T,j as P,k as E,l as M,m as A,p as B,q as I,s as V}from"./index.b3f8b7f1.js";/* empty css */import{g as $}from"./common.d8f31935.js";const O={setup(){let a=[{title:"\u9500\u552E\u53F7",key:"FSaleCode",align:"center"},{title:"\u53D1\u8D77\u65F6\u95F4",key:"FAddDate",align:"center",width:"182px"},{title:"\u5F53\u524D\u6D41\u7A0B",key:"FName",align:"center",width:"200px"},{title:"\u4E8B\u9879\u72B6\u6001",key:"FState",align:"center",width:"98px"},{title:"\u4EFB\u52A1\u6765\u6E90",key:"FDesc",align:"center"}];const o=h([]),l=h([" "," "," "," "]),e=h(""),f=k(),_=h([]);return{topCount:l,dataColumn:a,dataList:o,tableHeight:e,routerInfo:f,fastList:_}},mounted(){this._getHomeTopCount();let a=parseInt(this.$refs["lay-row3-div"].offsetHeight)-100;this.tableHeight=a+"px",this._getHomeFast(),this._getHomeNeed(a/40)},methods:{async _getHomeTopCount(){this.topCount=await w()||[0,0,0,0]},async _getHomeFast(){let a=await L({}),o=[];a.forEach(l=>{l.FChild.forEach(e=>{e.FName.indexOf("\u5168\u90E8")==-1&&e.FName.indexOf("\u7BA1\u7406")==-1&&o.length<8&&o.push(e)})}),this.fastList=o},async _getHomeNeed(a){let o={FPageIndex:1,FPageSize:Math.floor(a)};o.FPageSize=o.FPageSize<5?5:o.FPageSize;let l=await $(o,"Task");l.Data.List=l.Data.List||[],l.Data.List.forEach(e=>{e.FAddDate=e.FAddDate==null?"":this.dateFormat(e.FAddDate),e.FState=e.FState==2?"\u5DF2\u5B8C\u6210":"\u8FDB\u884C\u4E2D"}),this.dataList=l.Data.List||[]},dateFormat(a){return a.replace("T"," ").split(".")[0]},_goToMore(a){let o="";a==-1?o="/need/all":o=this.fastList[a].FRemark,this.routerInfo.push(o)}}},R=t("div",{class:"height20"},null,-1),j={class:"home-box1"},q={class:"icon"},G={class:"desc"},J={class:"count"},K=t("label",null,"\u672A\u5B8C\u4EE3\u529E\u4E8B\u9879",-1),Q={class:"home-box1"},U={class:"icon c1"},W={class:"desc"},X={class:"count"},Y=t("label",null,"\u4ECA\u65E5\u65B0\u589E\u5F85\u529E",-1),Z={class:"home-box1"},tt={class:"icon c2"},et={class:"desc"},ot={class:"count"},st=t("label",null,"\u534F\u540C\u8DEF\u7EBF",-1),at={class:"home-box1"},nt={class:"icon c3"},lt={class:"desc"},ct={class:"count"},it=t("label",null,"\u6211\u53C2\u4E0E\u7684\u8DEF\u7EBF",-1),_t=t("div",{class:"height10"},null,-1),dt={class:"lay-row2"},ht=t("h1",null,"\u5FEB\u6377\u5165\u53E3",-1),rt=["title"],ut={class:"lay-row3"},mt={class:"lay-row3-div",ref:"lay-row3-div"},pt={class:"home-box3"},ft=t("h1",null,"\u6700\u65B0\u5F85\u529E\u4E8B\u9879",-1);function gt(a,o,l,e,f,_){const F=P,d=E,c=M,g=A,y=B,b=I,v=V,x=H;return r(),p(x,{class:"home-layout"},{default:n(()=>[s(y,null,{default:n(()=>[s(F,{fluid:"true",style:{padding:"10px"}}),R,s(g,{space:"10"},{default:n(()=>[s(c,{md:"6"},{default:n(()=>[t("div",j,[t("p",q,[s(d,{type:"layui-icon-note",size:"26px"})]),t("p",G,[t("label",J,i(e.topCount[0]),1),K])])]),_:1}),s(c,{md:"6"},{default:n(()=>[t("div",Q,[t("p",U,[s(d,{type:"layui-icon-form",size:"26px"})]),t("p",W,[t("label",X,i(e.topCount[1]),1),Y])])]),_:1}),s(c,{md:"6"},{default:n(()=>[t("div",Z,[t("p",tt,[s(d,{type:"layui-icon-slider",size:"26px"})]),t("p",et,[t("label",ot,i(e.topCount[2]),1),st])])]),_:1}),s(c,{md:"6"},{default:n(()=>[t("div",at,[t("p",nt,[s(d,{type:"layui-icon-download-circle",size:"26px"})]),t("p",lt,[t("label",ct,i(e.topCount[3]),1),it])])]),_:1})]),_:1})]),_:1}),s(y,{class:"layui-header2"},{default:n(()=>[_t,t("div",dt,[s(g,{space:"10"},{default:n(()=>[s(c,{md:"24"},{default:n(()=>[ht]),_:1}),(r(!0),D(z,null,S(e.fastList,(u,m)=>(r(),p(c,{md:"3",key:m,onClick:yt=>_._goToMore(m)},{default:n(()=>[t("div",{class:N("home-box2 c"+m),title:u.FName},i(u.FName),11,rt)]),_:2},1032,["onClick"]))),128))]),_:1})])]),_:1}),s(v,null,{default:n(()=>[t("div",ut,[t("div",mt,[t("div",pt,[t("h2",{onClick:o[0]||(o[0]=u=>_._goToMore(-1))},"\u70B9\u51FB\u67E5\u770B\u66F4\u591A\u5F85\u529E\u4E8B\u9879"),ft]),e.tableHeight!=""?(r(),p(b,{key:0,height:e.tableHeight,columns:e.dataColumn,dataSource:e.dataList},null,8,["height","columns","dataSource"])):T("",!0)],512)])]),_:1})]),_:1})}var xt=C(O,[["render",gt]]);export{xt as default};
|
|
||||||
@ -1 +0,0 @@
|
|||||||
.height20{height:20px;display:block}.height10{height:10px;display:block}.height30{height:30px;display:block}.home-layout .layui-header{text-align:center;min-height:148px;height:auto;background-color:unset;overflow-x:hidden}.home-layout .layui-header2{min-height:194px}.home-layout .layui-body{display:flex;align-items:center;justify-content:center;margin:10px auto;overflow-x:hidden}.home-box1{width:70%;display:inline-block;text-align:center;line-height:100px;height:100px;border-radius:4px;overflow:hidden}.home-box1 p{display:inline-block;height:100px;overflow:hidden;position:relative;border-radius:4px 0 0 4px;color:#fff}.home-box1 .icon{width:40%;background:#FD4D4F}.home-box1 .icon.c1{background:#32BDB6}.home-box1 .icon.c2{background:#AAEB0E}.home-box1 .icon.c3{background:#597CF4}.home-box1 .desc{width:calc(60% - 2px);background:#FFF;color:#444;padding:20px 0;height:58px;color:#595959;border:1px solid rgba(187,187,187,100);border-radius:0 4px 4px 0}.home-box1 .desc label{display:block;line-height:28px}.home-box1 .desc .count{font-size:24px}.lay-row2{background:#fff;width:95%;display:block;overflow:hidden;margin:0 auto;padding:20px}.lay-row2 h1{color:#101010;font-weight:700;text-align:left;margin-bottom:5px}.home-box2{height:94px;width:110px;display:block;background:#000;line-height:94px;border-radius:4px;cursor:pointer;margin-bottom:10px;color:#fff;font-size:12px}.home-box2.c0{background:#36cfca}.home-box2.c1{background:#597cf4}.home-box2.c2{background:#e99d42}.home-box2.c3{background:#36cf3c}.home-box2.c4{background:#F4595c}.home-box2.c5{background:#31BDEC}.home-box2.c6{background:#FF5722}.home-box2.c7{background:#AAEB0E}.lay-row3{background:#fff;width:95%;display:block;overflow:hidden;margin:0 auto;padding:0 20px 20px;height:calc(100% - 40px)}.lay-row3-div{display:block;overflow:hidden;margin-bottom:20px;clear:both;height:100%}.lay-row3 .home-box3{height:60px;line-height:60px;margin-top:4px}.lay-row3 .home-box3 h1{font-weight:700;display:inline-block}.lay-row3 .home-box3 h2{font-weight:400;color:#168add;display:inline-block;float:right;font-size:14px;margin-right:2px;cursor:pointer}
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
.layui-collapse{border-width:1px;border-style:solid;border-radius:2px}.layui-colla-content,.layui-colla-item{border-top-width:1px;border-top-style:solid}.layui-colla-item:first-child{border-top:none}.layui-colla-title{position:relative;height:42px;line-height:42px;padding:0 15px 0 35px;color:#333;background-color:var(--global-neutral-color-1);cursor:pointer;font-size:14px;overflow:hidden}.layui-colla-content{padding:10px 15px;line-height:1.6;color:#666}.layui-colla-icon{position:absolute;left:15px;top:0;font-size:14px}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
.layui-radio[size=lg] .layui-form-radio>i{font-size:24px}.layui-radio[size=md] .layui-form-radio>i{font-size:22px}.layui-radio[size=sm] .layui-form-radio>i{font-size:20px}.layui-radio[size=xs] .layui-form-radio>i{font-size:18px}.layui-radio input[type=radio]{display:none}.layui-form-radio,.layui-form-radio *{display:inline-block;vertical-align:middle}.layui-form-radio{line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}.layui-form-radio *{font-size:14px}.layui-form-radio>i{margin-right:8px;font-size:22px;color:var(--global-neutral-color-8)}.layui-form-radio:hover *,.layui-form-radioed,.layui-form-radioed>i{color:var(--global-checked-color)}.layui-radio-disabled>i{color:var(--global-neutral-color-3)!important}.layui-radio-disabled *{color:var(--global-neutral-color-8)!important}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
import r from"./all.b1b3f398.js";import{_ as n,r as p,J as e,o as m,c as s}from"./index.b3f8b7f1.js";/* empty css *//* empty css */import"./all.b6bc6e53.js";/* empty css */import"./common.d8f31935.js";import"./factory.c30f2aec.js";import"./materialType.f34aeb6a.js";import"./package.94c98454.js";/* empty css */const c={components:{AllData:r},setup(){return{dataInfoObj:p(2)}}};function i(o,f,l,t,_,d){const a=e("AllData");return m(),s(a,{dataInfoObj:t.dataInfoObj},null,8,["dataInfoObj"])}var B=n(c,[["render",i]]);export{B as default};
|
|
||||||
@ -1 +0,0 @@
|
|||||||
import r from"./all.b1b3f398.js";import{_ as n,r as p,J as e,o as c,c as m}from"./index.b3f8b7f1.js";/* empty css *//* empty css */import"./all.b6bc6e53.js";/* empty css */import"./common.d8f31935.js";import"./factory.c30f2aec.js";import"./materialType.f34aeb6a.js";import"./package.94c98454.js";/* empty css */const s={components:{AllData:r},setup(){return{dataInfoObj:p(1)}}};function i(o,f,l,t,_,d){const a=e("AllData");return c(),m(a,{dataInfoObj:t.dataInfoObj},null,8,["dataInfoObj"])}var v=n(s,[["render",i]]);export{v as default};
|
|
||||||
@ -1 +0,0 @@
|
|||||||
import{_ as e}from"./index.b3f8b7f1.js";const r={name:"log.vue"};function o(t,a,n,s,_,c){return" 111 "}var f=e(r,[["render",o]]);export{f as default};
|
|
||||||
@ -1 +0,0 @@
|
|||||||
.content-box[data-v-36abbda6]{height:744px;display:block;position:relative;clear:both;float:none}.edit-box[data-v-36abbda6]{display:block;width:99%;text-align:center;margin:0 auto;clear:both;float:none}.edit-info[data-v-36abbda6]{margin:20px .75% 10px 0;width:47%;padding-left:1%;padding-right:1%;display:inline-block}.edit-info+.edit-info[data-v-36abbda6]{margin-left:.75%;margin-right:0}.layui-form-item[data-v-36abbda6]{margin-bottom:16px}.content-box[data-v-cde57ee0]{height:400px;margin:20px 10px;display:block;position:relative;clear:both;float:none}
|
|
||||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
import{v as n}from"./index.b3f8b7f1.js";async function r(t){let a={};return await n.post("/api/MaterialType/GetInfoData",t||{}).then(e=>{a=e.Data}),a}async function i(t){let a=0;return await n.post("/api/MaterialType/ChangeInfoData",t).then(e=>{a=e.Data||0}),a}export{i as c,r as g};
|
|
||||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
.edit-info[data-v-35b794fc]{padding-right:30px;margin:20px auto;overflow:hidden}.empty-small2[data-v-35b794fc]{margin:0 auto 20px;display:block}.layui-form-item[data-v-35b794fc]{margin-bottom:16px;width:46%;float:left;display:block;clear:initial}.layui-form-item[data-v-35b794fc]:nth-child(even){float:right}.edit-info[data-v-ad53da44]{width:90%;padding-right:30px;margin:30px auto 10px}.menuBtn[data-v-ad53da44]{display:block;text-align:center;width:96%;margin:20px auto}.empty-small2[data-v-ad53da44]{max-width:96%;margin:0 auto}.empty-small2>.layui-btn[data-v-ad53da44]{margin-bottom:16px}.note[data-v-ad53da44]{color:#999;font-size:12px;margin:12px auto 2px;text-align:right}.edit-info[data-v-26720406]{margin:0 28px;display:block;clear:both;float:none;overflow:auto;height:290px}.float-clear[data-v-26720406]{overflow:hidden;display:block;clear:both;float:none;height:0}.menuBtn[data-v-26720406]{display:block;text-align:center;width:96%;margin:10px auto}.empty-small2[data-v-26720406]{max-width:96%;margin:20px auto;display:block}.empty-small2>.layui-btn[data-v-26720406]{margin-bottom:16px}.note[data-v-26720406]{color:#999;font-size:12px;margin:12px auto 2px;text-align:right}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
import{v as n}from"./index.b3f8b7f1.js";async function i(t){let a={};return await n.post("/api/Package/GetPackageChildList",t).then(e=>{a=e}),a}async function s(t){let a=0;return await n.post("/api/Package/DeletePackageChild",{FID:t}).then(e=>{a=e.Data}),a}async function o(t){let a=0;return await n.post("/api/Package/GetPackageInfo",t).then(e=>{a=e.Data}),a}async function l(t){let a=0;return await n.post("/api/Package/UpdatePackageData",t).then(e=>{a=e.Data}),a}async function u(t){let a=0;return await n.post("/api/Package/DockMDMCode",t).then(e=>{a=e.Data}),a}async function p(t){let a=0;return await n.post("/api/Package/NoSupplyPackageChild",t).then(e=>{a=e.Data}),a}export{i as a,s as b,u as d,o as g,p as n,l as u};
|
|
||||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
:root{--textarea-border-radius: var(--global-border-radius);--textarea-border-color: var(--global-neutral-color-3)}.layui-textarea{border-width:1px;border-style:solid;background-color:#fff;color:#000000d9;border-radius:var(--textarea-border-radius);border-color:var(--textarea-border-color);display:block;width:100%;height:auto;line-height:20px;min-height:100px;padding:6px 10px;resize:vertical;position:relative}.layui-textarea-wrapper{position:relative}.layui-textarea:hover{border-color:#eee!important}.layui-textarea:focus{border-color:#d2d2d2!important}.layui-textarea-clear{position:absolute;color:#00000073;right:10px;top:10px}.layui-textarea::-webkit-input-placeholder{line-height:1.3}.layui-texterea-count{text-align:right;color:inherit;white-space:nowrap;pointer-events:none;margin-top:4px}.power-box[data-v-41fb242c]{display:block;height:75vh}.tab-box[data-v-41fb242c]{max-width:96%;margin:20px auto 0}.menuBtn[data-v-41fb242c]{display:block;text-align:center;width:96%;position:absolute;bottom:38px}.mb4[data-v-41fb242c],.mb5[data-v-41fb242c]{position:relative;margin-top:70px}.view-box[data-v-41fb242c]{padding-left:16px;display:block}.layui-checkbox[data-v-41fb242c]{margin-bottom:16px;display:inline-block}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
.dataInfo[data-v-dcc53da0]{max-width:90%;margin:30px auto;padding-right:30px;overflow-y:auto}.layui-item33[data-v-03d64be6]{width:90%;padding-right:30px;margin:30px auto 10px;display:block;overflow:auto;position:relative;clear:both}.menuBtn[data-v-03d64be6]{display:block;text-align:center;width:96%;margin:20px auto}.empty-small2[data-v-03d64be6]{max-width:96%;margin:0 auto}.empty-small2>.layui-btn[data-v-03d64be6]{margin-bottom:16px}.title-materail[data-v-03d64be6]{margin:8px 10px 0 0;vertical-align:middle;text-align:right}.data-materail[data-v-03d64be6]{margin:0 20px 0 0}
|
|
||||||
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
|||||||
import{S as p}from"./all.b6bc6e53.js";import{_ as r,r as a,J as n,o as s,c}from"./index.b3f8b7f1.js";/* empty css *//* empty css *//* empty css */import"./common.d8f31935.js";import"./factory.c30f2aec.js";import"./materialType.f34aeb6a.js";import"./package.94c98454.js";/* empty css */const m={components:{AllData:p},setup(){return{pageTypeObj:a(2)}}};function i(o,l,_,t,f,u){const e=n("AllData");return s(),c(e,{pageTypeObj:t.pageTypeObj},null,8,["pageTypeObj"])}var A=r(m,[["render",i]]);export{A as default};
|
|
||||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 1.1 KiB |
@ -1,133 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<link rel="icon" href="/favicon.ico" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>配方物料协同系统</title>
|
|
||||||
<style>
|
|
||||||
.loader-main {
|
|
||||||
position: fixed;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background-color: whitesmoke;
|
|
||||||
z-index: 9999999;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loader {
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
margin: 30px auto 40px;
|
|
||||||
margin-top: 20%;
|
|
||||||
position: relative;
|
|
||||||
z-index: 999999;
|
|
||||||
background-color: whitesmoke;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loader:before {
|
|
||||||
content: "";
|
|
||||||
width: 50px;
|
|
||||||
height: 7px;
|
|
||||||
border-radius: 50%;
|
|
||||||
background: #000;
|
|
||||||
opacity: 0.1;
|
|
||||||
position: absolute;
|
|
||||||
top: 59px;
|
|
||||||
left: 0;
|
|
||||||
animation: shadow 0.5s linear infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
.loader:after {
|
|
||||||
content: "";
|
|
||||||
width: 50px;
|
|
||||||
height: 50px;
|
|
||||||
border-radius: 3px;
|
|
||||||
background-color: #5fb878;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
animation: loading 0.5s linear infinite;
|
|
||||||
}
|
|
||||||
|
|
||||||
@-webkit-keyframes loading {
|
|
||||||
17% {
|
|
||||||
border-bottom-right-radius: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
25% {
|
|
||||||
transform: translateY(9px) rotate(22.5deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
transform: translateY(18px) scale(1, 0.9) rotate(45deg);
|
|
||||||
border-bottom-right-radius: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
75% {
|
|
||||||
transform: translateY(9px) rotate(67.5deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
transform: translateY(0) rotate(90deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes loading {
|
|
||||||
17% {
|
|
||||||
border-bottom-right-radius: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
25% {
|
|
||||||
transform: translateY(9px) rotate(22.5deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
transform: translateY(18px) scale(1, 0.9) rotate(45deg);
|
|
||||||
border-bottom-right-radius: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
75% {
|
|
||||||
transform: translateY(9px) rotate(67.5deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
transform: translateY(0) rotate(90deg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@-webkit-keyframes shadow {
|
|
||||||
|
|
||||||
0%,
|
|
||||||
100% {
|
|
||||||
transform: scale(1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
transform: scale(1.2, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes shadow {
|
|
||||||
|
|
||||||
0%,
|
|
||||||
100% {
|
|
||||||
transform: scale(1, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
50% {
|
|
||||||
transform: scale(1.2, 1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<script type="module" crossorigin src="/assets/index.b3f8b7f1.js"></script>
|
|
||||||
<link rel="stylesheet" href="/assets/index.51079297.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="app">
|
|
||||||
<div class="loader-main">
|
|
||||||
<div class="loader"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,118 @@
|
|||||||
|
<template>
|
||||||
|
<lay-table style="margin:0 0 30px 0;" height="200px" :columns="dataColumn" :data-source="dataList">
|
||||||
|
<template v-slot:toolbar>
|
||||||
|
<p style="float:left;">配方视图</p>
|
||||||
|
</template>
|
||||||
|
</lay-table>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref
|
||||||
|
} from 'vue';
|
||||||
|
import {
|
||||||
|
getTeamworkView
|
||||||
|
} from "/src/api/api/teamwork";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
setup() {
|
||||||
|
const viewList = ref([]);
|
||||||
|
const dataColumn = ref([
|
||||||
|
{type: 'number', title: '序号', width: '56'},
|
||||||
|
{key: '工厂', title: '工厂', align: 'center', width: '130px'},
|
||||||
|
{key: '开始生效日期', title: '开始生效日期', align: 'center', width: '130px'},
|
||||||
|
{key: 'BOM用途', title: 'BOM用途', align: 'center', width: '130px'},
|
||||||
|
{key: 'BOM状态', title: 'BOM状态', align: 'center', width: '130px'},
|
||||||
|
{key: '可选文本', title: '可选文本', align: 'center', width: '130px'},
|
||||||
|
{key: '可选BOM', title: '可选BOM', align: 'center', width: '130px'},
|
||||||
|
{key: '父项编码', title: '父项编码', align: 'center', width: '200px'},
|
||||||
|
{key: '父项描述', title: '父项描述', align: 'center', width: '300px'},
|
||||||
|
{key: '基本数量', title: '基本数量', align: 'center', width: '130px'},
|
||||||
|
{key: '基本单位', title: '基本单位', align: 'center', width: '130px'},
|
||||||
|
{key: '子项序号', title: '子项序号', align: 'center', width: '130px'},
|
||||||
|
{key: '项目类别', title: '项目类别', align: 'center', width: '130px'},
|
||||||
|
{key: '子项编码', title: '子项编码', align: 'center', width: '200px'},
|
||||||
|
{key: '子件描述', title: '子件描述', align: 'center', width: '300px'},
|
||||||
|
{key: '组件数量', title: '组件数量', align: 'center', width: '130px'},
|
||||||
|
{key: '计量单位', title: '计量单位', align: 'center', width: '130px'},
|
||||||
|
{key: '工程变更号', title: '工程变更号', align: 'center', width: '130px'},
|
||||||
|
{key: '项目ID', title: '项目ID', align: 'center', width: '130px'},
|
||||||
|
{key: '物料供应标识符', title: '物料供应标识符', align: 'center', width: '130px'},
|
||||||
|
{key: '备件标示', title: '备件标示', align: 'center', width: '130px'},
|
||||||
|
{key: '生产仓储地点', title: '生产仓储地点', align: 'center', width: '130px'},
|
||||||
|
{key: '组件损耗率', title: '组件损耗率', align: 'center', width: '130px'},
|
||||||
|
{key: '成本核算标识相关', title: '成本核算标识相关', align: 'center', width: '130px'},
|
||||||
|
{key: '生产相关', title: '生产相关', align: 'center', width: '130px'},
|
||||||
|
{key: 'BOM项目文本1', title: 'BOM项目文本1', align: 'center', width: '130px'},
|
||||||
|
{key: 'BOM项目文本2', title: 'BOM项目文本2', align: 'center', width: '130px'},
|
||||||
|
{key: '替代项目组', title: '替代项目组', align: 'center', width: '130px'},
|
||||||
|
{key: '优先级', title: '优先级', align: 'center', width: '130px'},
|
||||||
|
{key: '策略', title: '策略', align: 'center', width: '130px'},
|
||||||
|
{key: '使用可能性', title: '使用可能性', align: 'center', width: '130px'},
|
||||||
|
{key: '固定损耗数量', title: '固定损耗数量', align: 'center', width: '130px'}
|
||||||
|
]);
|
||||||
|
const dataList = ref([]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
viewList,
|
||||||
|
dataColumn,
|
||||||
|
dataList
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
teamId: {
|
||||||
|
type: String,
|
||||||
|
default: () => ""
|
||||||
|
},
|
||||||
|
halfId: {
|
||||||
|
type: String,
|
||||||
|
default: () => ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initPage();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async initPage() {
|
||||||
|
let dataColumn = [{
|
||||||
|
type: "number",
|
||||||
|
title: "序号",
|
||||||
|
width: "56"
|
||||||
|
}];
|
||||||
|
let dataList = [];
|
||||||
|
|
||||||
|
let postData = {
|
||||||
|
FTeamID: this.teamId,
|
||||||
|
FViewType: 2,
|
||||||
|
FType: 1,
|
||||||
|
HalfId : this.halfId
|
||||||
|
};
|
||||||
|
|
||||||
|
let result = await getTeamworkView(postData);
|
||||||
|
|
||||||
|
let formulaList = result["List1"]
|
||||||
|
|
||||||
|
if (formulaList) {
|
||||||
|
for (let key in formulaList[0]) {
|
||||||
|
let width = (key.indexOf("描述") != -1 || key == "文本" || key == "物料") ? "300px" :
|
||||||
|
"130px";
|
||||||
|
width = key.indexOf("编码") != -1 ? "200px" : width;
|
||||||
|
dataColumn.push({
|
||||||
|
key: key,
|
||||||
|
title: key.split('.').pop(),
|
||||||
|
align: "center",
|
||||||
|
width: width
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
formulaList.forEach((item) => {
|
||||||
|
dataList.push(item);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// this.dataColumn = dataColumn;
|
||||||
|
this.dataList = dataList;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
@ -0,0 +1,78 @@
|
|||||||
|
<template>
|
||||||
|
<lay-container>
|
||||||
|
<view class="layui-item33 color999" :style="'max-height:900px'">
|
||||||
|
<lay-row space="10">
|
||||||
|
<lay-col md="4" sm="12" xs="24" v-for="(item, index) in columns">
|
||||||
|
<lay-checkbox-group v-model="checkedItem">
|
||||||
|
<lay-checkbox :name="item.title" skin="primary" :value="item.key">
|
||||||
|
{{ item.title }}
|
||||||
|
</lay-checkbox>
|
||||||
|
</lay-checkbox-group>
|
||||||
|
</lay-col>
|
||||||
|
</lay-row>
|
||||||
|
</view>
|
||||||
|
<view class="menuBtn">
|
||||||
|
<lay-button type="primary" @click="submitClick">确定</lay-button>
|
||||||
|
<lay-button @click="cancelClick">取消</lay-button>
|
||||||
|
</view>
|
||||||
|
</lay-container>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref
|
||||||
|
} from 'vue';
|
||||||
|
export default {
|
||||||
|
setup() {
|
||||||
|
const columnList = ref([]);
|
||||||
|
const checkedItem = ref([]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
columnList,
|
||||||
|
checkedItem,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
columns: {
|
||||||
|
type: Object,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
freezingColumns: {
|
||||||
|
type: Object,
|
||||||
|
default: () => [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initPage();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initPage() {
|
||||||
|
this.columnList = this.columns;
|
||||||
|
this.checkedItem = this.freezingColumns.concat();
|
||||||
|
},
|
||||||
|
cancelClick() {
|
||||||
|
this.$emit('cancelClick', this.freezingColumns);
|
||||||
|
},
|
||||||
|
submitClick() {
|
||||||
|
this.$emit('cancelClick', this.checkedItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.layui-item33 {
|
||||||
|
width: 90%;
|
||||||
|
padding-right: 30px;
|
||||||
|
margin: 30px auto 10px;
|
||||||
|
display: block;
|
||||||
|
overflow: auto;
|
||||||
|
position: relative;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menuBtn {
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
width: 96%;
|
||||||
|
margin: 20px auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,85 @@
|
|||||||
|
<template>
|
||||||
|
<lay-table class="empty-small2 empty-small3" style="margin:30px 0;" height="200px" :columns="dataColumn" id="FID"
|
||||||
|
:dataSource="dataList">
|
||||||
|
<template v-slot:toolbar>
|
||||||
|
<p style="float:right;">操作日志</p>
|
||||||
|
<lay-button size="sm" @click="_getPageList()">刷新</lay-button>
|
||||||
|
</template>
|
||||||
|
</lay-table>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref
|
||||||
|
} from 'vue';
|
||||||
|
import {
|
||||||
|
getPageList
|
||||||
|
} from "/src/api/api/common";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
setup() {
|
||||||
|
let dataColumn = [{
|
||||||
|
title: "序号",
|
||||||
|
key: "RowIndex",
|
||||||
|
width: "80px"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作时间",
|
||||||
|
key: "FAddDate",
|
||||||
|
width: "200px"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作人",
|
||||||
|
key: "FOptUser",
|
||||||
|
width: "180px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "说明",
|
||||||
|
key: "FDesc"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
dataColumn.forEach((item) => {
|
||||||
|
item.align = "center";
|
||||||
|
});
|
||||||
|
const dataList = ref([]);
|
||||||
|
return {
|
||||||
|
dataColumn,
|
||||||
|
dataList
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
dataInfoObj: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
setTimeout((item) => {
|
||||||
|
this._getPageList();
|
||||||
|
}, 100);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
cancelClick(isRefresh) {
|
||||||
|
this.$emit('cancelClick', isRefresh !== undefined ? isRefresh : false);
|
||||||
|
},
|
||||||
|
//日期处理
|
||||||
|
dateFormat(dataStr) {
|
||||||
|
return dataStr.replace('T', ' ').split('.')[0];
|
||||||
|
},
|
||||||
|
async _getPageList() {
|
||||||
|
if (this.dataInfoObj.FTeamID) {
|
||||||
|
let postObj = {
|
||||||
|
FTeamID: this.dataInfoObj.FTeamID,
|
||||||
|
FType: this.dataInfoObj.FType,
|
||||||
|
FPageSize: 99999
|
||||||
|
};
|
||||||
|
let result = await getPageList(postObj, 'OperateLog');
|
||||||
|
this.dataList = result.Data.List || [];
|
||||||
|
this.dataList.forEach(item => {
|
||||||
|
item.FAddDate = item.FAddDate == null ? "" : this.dateFormat(item.FAddDate);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,95 @@
|
|||||||
|
<template>
|
||||||
|
<lay-container fluid="true" class="content-box">
|
||||||
|
<lay-table v-if="dataColumn.length>0" :height="viewHeight+'px'" :columns="dataColumn" :data-source="dataList"
|
||||||
|
:row-style="rowStyle">
|
||||||
|
</lay-table>
|
||||||
|
</lay-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.content-box {
|
||||||
|
margin: 30px 10px;
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
clear: both;
|
||||||
|
float: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref
|
||||||
|
} from 'vue';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
setup() {
|
||||||
|
const dataColumn = ref([]);
|
||||||
|
const dataList = ref([]);
|
||||||
|
const dataColor = ref([]);
|
||||||
|
let colors = ["1E9FFF", "009688", "393D49", "5FB878"];
|
||||||
|
const rowStyle = function(row, rowIndex) {
|
||||||
|
let color = "";
|
||||||
|
for (let idx = 0; idx < dataColor.value.length; idx++) {
|
||||||
|
if (rowIndex > dataColor.value[idx]) color = "color:#" + colors[idx];
|
||||||
|
}
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
dataColumn,
|
||||||
|
dataList,
|
||||||
|
dataColor,
|
||||||
|
rowStyle,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
viewList: {
|
||||||
|
type: Object,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
viewHeight: {
|
||||||
|
type: Number,
|
||||||
|
default: () => 600,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initPage();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initPage() {
|
||||||
|
let dataColumn = [{
|
||||||
|
type: "number",
|
||||||
|
title: "序号",
|
||||||
|
width: "56"
|
||||||
|
}];
|
||||||
|
let dataList = [];
|
||||||
|
let dataColor = []
|
||||||
|
this.viewList.forEach((item) => {
|
||||||
|
if (item.length > 0) {
|
||||||
|
if (dataColumn.length == 1) {
|
||||||
|
for (let key in item[0]) {
|
||||||
|
let width = (key.indexOf("描述") != -1 || key == "文本" || key == "物料") ? "300px" :
|
||||||
|
"130px";
|
||||||
|
width = key.indexOf("编码") != -1 ? "200px" : width;
|
||||||
|
dataColumn.push({
|
||||||
|
key: key,
|
||||||
|
title: key.split('.').pop(),
|
||||||
|
align: "center",
|
||||||
|
width: width
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
item.forEach((item2) => {
|
||||||
|
dataList.push(item2);
|
||||||
|
});
|
||||||
|
dataColor.push(dataList.length - 1);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.dataColumn = dataColumn;
|
||||||
|
this.dataList = dataList;
|
||||||
|
this.dataColor = dataColor
|
||||||
|
},
|
||||||
|
cancelClick() {
|
||||||
|
this.$emit('cancelClick', false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@ -0,0 +1,307 @@
|
|||||||
|
<template>
|
||||||
|
<lay-container fluid="true" :style="'padding:10px;height:' + (dataInfoObj != undefined ? (dataInfoObj.FHeight + 'px') : 'auto')">
|
||||||
|
<lay-row space="10">
|
||||||
|
<lay-col span="24">
|
||||||
|
<lay-card>
|
||||||
|
<lay-form :model="searchObj" class="search-box">
|
||||||
|
<lay-row class="search-items">
|
||||||
|
<lay-form-item label="物料号" prop="FSaleCode">
|
||||||
|
<lay-input v-model="searchObj.FSaleCode"></lay-input>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item label="类型" prop="FType">
|
||||||
|
<lay-select v-model="searchObj.FType">
|
||||||
|
<lay-select-option v-for="(tIdv, tIdx) in typeList" :key="tIdx" :value="tIdv.FValue"
|
||||||
|
:label="tIdv.FName"></lay-select-option>
|
||||||
|
</lay-select>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item v-if="postData.FState != 99" label="事项状态" prop="FState">
|
||||||
|
<lay-select v-model="searchObj.FState">
|
||||||
|
<lay-select-option v-for="(tv, tx) in stateList" :key="tx" :value="tv.id"
|
||||||
|
:label="tv.name"></lay-select-option>
|
||||||
|
</lay-select>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item label="发起日期" prop="FDateRange">
|
||||||
|
<lay-date-picker v-model="searchObj.FDateRange" range placeholder="type : date">
|
||||||
|
</lay-date-picker>
|
||||||
|
</lay-form-item>
|
||||||
|
</lay-row>
|
||||||
|
<lay-form-item class="search-btn">
|
||||||
|
<lay-button size="sm" type="primary" @click="_clickSearch">搜索</lay-button>
|
||||||
|
<lay-button size="sm" @click="_clickReset">重置</lay-button>
|
||||||
|
</lay-form-item>
|
||||||
|
</lay-form>
|
||||||
|
<lay-table v-if="hasLoaded" :columns="dataColumn" id="id" :dataSource="dataList"
|
||||||
|
v-model:selectedKeys="selectedKeys" :checkbox="checkbox" :default-toolbar="defaultToolbar"
|
||||||
|
:page="dataList.length > 0 ? pageInfo : null" @change="changePage">
|
||||||
|
<template v-slot:toolbar>
|
||||||
|
<lay-button size="sm" @click="_getPageList(false, true)">刷新</lay-button>
|
||||||
|
<lay-button size="sm" type="primary" @click="showEditMaterial(2)">修改</lay-button>
|
||||||
|
</template>
|
||||||
|
<template v-slot:FStateName="{ data }">
|
||||||
|
<span v-if="data.FStateName == '已完成'" style="color:#5FB878">{{ data.FStateName }}</span>
|
||||||
|
<span v-else style="color:#1E9FFF">{{ data.FStateName }}</span>
|
||||||
|
</template>
|
||||||
|
<template v-if="dataInfoObj == undefined || !dataInfoObj.FID" v-slot:operator="{ data }">
|
||||||
|
<lay-button size="xs" type="primary" @click="showEditMaterial(3)">详情</lay-button>
|
||||||
|
</template>
|
||||||
|
</lay-table>
|
||||||
|
</lay-card>
|
||||||
|
</lay-col>
|
||||||
|
</lay-row>
|
||||||
|
<lay-layer :area="modelArea[2]" v-model="showEditBox[2]" title="配方变更">
|
||||||
|
<EditMateria v-if="showEditBox[2]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></EditMateria>
|
||||||
|
</lay-layer>
|
||||||
|
<lay-layer :area="modelArea[3]" v-model="showEditBox[3]" title="配方变更详情">
|
||||||
|
<ShowData1 v-if="showEditBox[3]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></ShowData1>
|
||||||
|
</lay-layer>
|
||||||
|
</lay-container>
|
||||||
|
</template>
|
||||||
|
<style scoped>
|
||||||
|
.layui-table-body {
|
||||||
|
min-height: 50vh;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
watch
|
||||||
|
} from "vue";
|
||||||
|
import {
|
||||||
|
getBasicList,
|
||||||
|
getPageList
|
||||||
|
} from "/src/api/api/common";
|
||||||
|
import ShowData1 from '../half/components/ShowData1.vue';
|
||||||
|
import EditMateria from '../half/components/EditMateria.vue';
|
||||||
|
import EditView from '../half/components/EditView.vue';
|
||||||
|
import '@layui/layui-vue/es/checkbox/index.css';
|
||||||
|
import '@layui/layui-vue/es/radio/index.css';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
EditMateria,
|
||||||
|
EditView,
|
||||||
|
ShowData1
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
let dataColumn = [
|
||||||
|
{
|
||||||
|
title: "序号",
|
||||||
|
key: "F1",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
}, {
|
||||||
|
title: "原试验号",
|
||||||
|
key: "F2",
|
||||||
|
width: "300px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "原版本号",
|
||||||
|
key: "F3",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "新试验号",
|
||||||
|
key: "F4",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "新版本号",
|
||||||
|
key: "F5",
|
||||||
|
width: "400px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "产品分类",
|
||||||
|
key: "F6",
|
||||||
|
width: "400px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "发起时间",
|
||||||
|
key: "F7",
|
||||||
|
width: "180px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "发起人",
|
||||||
|
key: "F8",
|
||||||
|
width: "178px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
key: "operator",
|
||||||
|
width: "130px",
|
||||||
|
fixed: "right",
|
||||||
|
customSlot: 'operator',
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
const selectedKeys = ref(["1"]);
|
||||||
|
const checkbox = ref(false);
|
||||||
|
const defaultToolbar = ref(true);
|
||||||
|
const pageInfo = ref({
|
||||||
|
total: 0,
|
||||||
|
limit: 10,
|
||||||
|
current: 1
|
||||||
|
});
|
||||||
|
const dataList = ref([]);
|
||||||
|
const typeList = ref([]);
|
||||||
|
const searchObj = ref({});
|
||||||
|
const postData = ref({});
|
||||||
|
const MaterialModel = ref({});
|
||||||
|
const showEditBox = ref([false, false, false, false, false, false, false, false, false, false, false, false, false]);
|
||||||
|
const modelArea = ref(["70%", "70%", "70%", "40%", "70%", "70%", "70%", "70%", "700px", "70%", "70%", "70%", "70%"]);
|
||||||
|
const objInfoObj = ref({});
|
||||||
|
const editType = ref(1);
|
||||||
|
const stateList = ref([{
|
||||||
|
id: 1,
|
||||||
|
name: "进行中"
|
||||||
|
}, {
|
||||||
|
id: 2,
|
||||||
|
name: "已完成"
|
||||||
|
}]);
|
||||||
|
const hasLoaded = ref(false);
|
||||||
|
const dataItem = ref([]);
|
||||||
|
return {
|
||||||
|
selectedKeys,
|
||||||
|
checkbox,
|
||||||
|
defaultToolbar,
|
||||||
|
dataColumn,
|
||||||
|
dataList,
|
||||||
|
pageInfo,
|
||||||
|
searchObj,
|
||||||
|
postData,
|
||||||
|
typeList,
|
||||||
|
showEditBox,
|
||||||
|
modelArea,
|
||||||
|
objInfoObj,
|
||||||
|
editType,
|
||||||
|
stateList,
|
||||||
|
hasLoaded,
|
||||||
|
MaterialModel,
|
||||||
|
dataItem
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
dataInfoObj: {
|
||||||
|
type: Object,
|
||||||
|
default: () => { },
|
||||||
|
},
|
||||||
|
|
||||||
|
pageTypeObj: {
|
||||||
|
type: Number,
|
||||||
|
default: () => 1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
if (this.dataInfoObj) {
|
||||||
|
this.dataColumn.pop();
|
||||||
|
this.dataColumn[0].hide = true;
|
||||||
|
this.dataColumn[1].hide = true;
|
||||||
|
this.dataColumn[2].hide = true;
|
||||||
|
this.dataColumn[7].hide = false;
|
||||||
|
}
|
||||||
|
this._getTypeList();
|
||||||
|
this._getPageList(true);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
changePage(obj) {
|
||||||
|
this.pageInfo.current = obj.current;
|
||||||
|
this.pageInfo.limit = obj.limit;
|
||||||
|
this._getPageList();
|
||||||
|
},
|
||||||
|
cancelClick(isRefresh, onlyRefresh) {
|
||||||
|
if (isRefresh) {
|
||||||
|
this._getPageList(true);
|
||||||
|
}
|
||||||
|
if (onlyRefresh) return false;
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async _getTypeList() {
|
||||||
|
this.typeList = await getBasicList(33) || [];
|
||||||
|
},
|
||||||
|
//分页列表
|
||||||
|
async _getPageList(isFirst, showOk) {
|
||||||
|
|
||||||
|
|
||||||
|
this.dataList = [{ F1: 1, F2: "10020421", F3: "1.0", F4: "10020421", F5: "2.0", F6: "半成品", F7: "2022-10-24 11:00", F8: "kai" }];
|
||||||
|
this.hasLoaded = true;
|
||||||
|
},
|
||||||
|
//日期处理
|
||||||
|
dateFormat(dataStr) {
|
||||||
|
return dataStr.replace('T', ' ').split('.')[0];
|
||||||
|
},
|
||||||
|
getData(data) {
|
||||||
|
this.MaterialModel = data;
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
this.showEditBox[11] = true;
|
||||||
|
this.editType = 1;
|
||||||
|
|
||||||
|
},
|
||||||
|
showEditMaterial(i) {
|
||||||
|
this.showEditBox[i] = true;
|
||||||
|
},
|
||||||
|
_clickSetInfo(data, type) {
|
||||||
|
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
if (data.FType == 1) {
|
||||||
|
data.FBoxType = 1; //配方选择
|
||||||
|
} else if (data.FType == 2) {
|
||||||
|
data.FBoxType = 2; //BOM下载
|
||||||
|
} else if (data.FType == 9 || data.FType == 10) {
|
||||||
|
data.FBoxType = 4; //新包材新增、新子项包材申请
|
||||||
|
} else if ((data.FType >= 3 && data.FType <= 7) || data.FType == 11) {
|
||||||
|
data.FBoxType = 3; //视图编辑
|
||||||
|
} else if (data.FType == 8) {
|
||||||
|
data.FBoxType = 5; //组编号申请
|
||||||
|
} else if (data.FType == 12) {
|
||||||
|
data.FBoxType = 6; //成品视图物料组复核
|
||||||
|
} else if (data.FType == 13) {
|
||||||
|
data.FBoxType = 7; //流程确认完成
|
||||||
|
} else if (data.FType == 14) {
|
||||||
|
data.FBoxType = 8; //补充包材规格
|
||||||
|
} else if (data.FType == 15) {
|
||||||
|
data.FBoxType = 9; //物料选择类型
|
||||||
|
} else if (data.FType == 16) {
|
||||||
|
this.dataItem = data;
|
||||||
|
data.FBoxType = 10; //替代料确认
|
||||||
|
} else {
|
||||||
|
return layer.msg("未知事项类型");
|
||||||
|
}
|
||||||
|
this.objInfoObj = data;
|
||||||
|
this.editType = type;
|
||||||
|
this.showEditBox[data.FBoxType] = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//检索-检索
|
||||||
|
_clickSearch() {
|
||||||
|
this.postData = {};
|
||||||
|
for (let key in this.searchObj) {
|
||||||
|
let val = this.searchObj[key];
|
||||||
|
if (val != null && val !== "") this.postData[key] = val;
|
||||||
|
}
|
||||||
|
this._getPageList(true);
|
||||||
|
},
|
||||||
|
//检索-重置
|
||||||
|
_clickReset() {
|
||||||
|
this.searchObj = {};
|
||||||
|
this._clickSearch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@ -0,0 +1,337 @@
|
|||||||
|
<template>
|
||||||
|
<lay-container fluid="true"
|
||||||
|
:style="'padding:10px;height:'+(dataInfoObj!=undefined?(dataInfoObj.FHeight+'px'):'auto')">
|
||||||
|
<lay-row space="10">
|
||||||
|
<lay-col span="24">
|
||||||
|
<lay-card>
|
||||||
|
<lay-form :model="searchObj" class="search-box">
|
||||||
|
<lay-row class="search-items">
|
||||||
|
<lay-form-item label="物料号" prop="FSaleCode">
|
||||||
|
<lay-input v-model="searchObj.FSaleCode"></lay-input>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item label="当前流程" prop="FType">
|
||||||
|
<lay-select v-model="searchObj.FType">
|
||||||
|
<lay-select-option v-for="(tIdv,tIdx) in typeList" :key="tIdx" :value="tIdv.FValue"
|
||||||
|
:label="tIdv.FName"></lay-select-option>
|
||||||
|
</lay-select>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item v-if="postData.FState!=99" label="事项状态" prop="FState">
|
||||||
|
<lay-select v-model="searchObj.FState">
|
||||||
|
<lay-select-option v-for="(tv,tx) in stateList" :key="tx" :value="tv.id"
|
||||||
|
:label="tv.name"></lay-select-option>
|
||||||
|
</lay-select>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item label="发起日期" prop="FDateRange">
|
||||||
|
<lay-date-picker v-model="searchObj.FDateRange" range placeholder="type : date">
|
||||||
|
</lay-date-picker>
|
||||||
|
</lay-form-item>
|
||||||
|
</lay-row>
|
||||||
|
<lay-form-item class="search-btn">
|
||||||
|
<lay-button size="sm" type="primary" @click="_clickSearch">搜索</lay-button>
|
||||||
|
<lay-button size="sm" @click="_clickReset">重置</lay-button>
|
||||||
|
</lay-form-item>
|
||||||
|
</lay-form>
|
||||||
|
<lay-table v-if="hasLoaded" :columns="dataColumn" id="id" :dataSource="dataList"
|
||||||
|
v-model:selectedKeys="selectedKeys" :checkbox="checkbox" :default-toolbar="defaultToolbar"
|
||||||
|
:page="dataList.length>0?pageInfo:null" @change="changePage">
|
||||||
|
<template v-slot:toolbar>
|
||||||
|
<lay-button size="sm" @click="_getPageList(false,true)">刷新</lay-button>
|
||||||
|
<lay-button size="sm" type="normal" style="float:right" @click="showEditMaterial(1)">导出</lay-button>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<template v-slot:FStateName="{ data }">
|
||||||
|
<span v-if="data.FStateName=='已完成'" style="color:#5FB878">{{ data.FStateName }}</span>
|
||||||
|
<span v-else style="color:#1E9FFF">{{ data.FStateName }}</span>
|
||||||
|
</template>
|
||||||
|
<template v-if="dataInfoObj == undefined|| !dataInfoObj.FID" v-slot:operator="{ data }">
|
||||||
|
<lay-button size="xs" type="primary" @click="showEditMaterial(3)">操作</lay-button>
|
||||||
|
</template>
|
||||||
|
</lay-table>
|
||||||
|
</lay-card>
|
||||||
|
</lay-col>
|
||||||
|
</lay-row>
|
||||||
|
<lay-layer :area="modelArea[2]" v-model="showEditBox[2]" :title="编辑物料">
|
||||||
|
<EditMateria v-if="showEditBox[2]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></EditMateria>
|
||||||
|
</lay-layer>
|
||||||
|
<lay-layer :area="modelArea[3]" v-model="showEditBox[3]" :title="物料视图">
|
||||||
|
<EditView v-if="showEditBox[3]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></EditView>
|
||||||
|
</lay-layer>
|
||||||
|
</lay-container>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
watch
|
||||||
|
} from "vue";
|
||||||
|
import {
|
||||||
|
getBasicList,
|
||||||
|
getPageList
|
||||||
|
} from "/src/api/api/common";
|
||||||
|
import EditMateria from '../half/components/EditMateria.vue';
|
||||||
|
import EditView from '../half/components/EditView.vue';
|
||||||
|
import '@layui/layui-vue/es/checkbox/index.css';
|
||||||
|
import '@layui/layui-vue/es/radio/index.css';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
EditMateria,
|
||||||
|
EditView
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
let dataColumn = [
|
||||||
|
{
|
||||||
|
title: "序号",
|
||||||
|
key: "F1",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},{
|
||||||
|
title: "新试验号",
|
||||||
|
key: "F2",
|
||||||
|
width: "300px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "新版本号",
|
||||||
|
key: "F3",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "事项",
|
||||||
|
key: "F4",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "产品分类",
|
||||||
|
key: "F5",
|
||||||
|
width: "400px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "发起时间",
|
||||||
|
key: "F6",
|
||||||
|
width: "180px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "发起人",
|
||||||
|
key: "F7",
|
||||||
|
width: "178px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "负责人",
|
||||||
|
key: "F8",
|
||||||
|
width: "98px",
|
||||||
|
align: 'center',
|
||||||
|
customSlot: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
key: "operator",
|
||||||
|
width: "130px",
|
||||||
|
fixed: "right",
|
||||||
|
customSlot: 'operator',
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
const selectedKeys = ref(["1"]);
|
||||||
|
const checkbox = ref(false);
|
||||||
|
const defaultToolbar = ref(true);
|
||||||
|
const pageInfo = ref({
|
||||||
|
total: 0,
|
||||||
|
limit: 10,
|
||||||
|
current: 1
|
||||||
|
});
|
||||||
|
const dataList = ref([]);
|
||||||
|
const typeList = ref([]);
|
||||||
|
const searchObj = ref({});
|
||||||
|
const postData = ref({});
|
||||||
|
const MaterialModel= ref({});
|
||||||
|
const showEditBox = ref([false, false, false, false, false, false, false, false, false, false, false, false,false]);
|
||||||
|
const modelArea = ref(["70%", "70%", "70%", "86%", "70%", "70%", "70%", "70%", "700px", "70%", "70%","70%","70%"]);
|
||||||
|
const objInfoObj = ref({});
|
||||||
|
const editType = ref(1);
|
||||||
|
const stateList = ref([{
|
||||||
|
id: 1,
|
||||||
|
name: "进行中"
|
||||||
|
}, {
|
||||||
|
id: 2,
|
||||||
|
name: "已完成"
|
||||||
|
}]);
|
||||||
|
const hasLoaded = ref(false);
|
||||||
|
const dataItem=ref([]);
|
||||||
|
return {
|
||||||
|
selectedKeys,
|
||||||
|
checkbox,
|
||||||
|
defaultToolbar,
|
||||||
|
dataColumn,
|
||||||
|
dataList,
|
||||||
|
pageInfo,
|
||||||
|
searchObj,
|
||||||
|
postData,
|
||||||
|
typeList,
|
||||||
|
showEditBox,
|
||||||
|
modelArea,
|
||||||
|
objInfoObj,
|
||||||
|
editType,
|
||||||
|
stateList,
|
||||||
|
hasLoaded,
|
||||||
|
MaterialModel,
|
||||||
|
dataItem
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
dataInfoObj: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
|
||||||
|
pageTypeObj: {
|
||||||
|
type: Number,
|
||||||
|
default: () => 1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
if (this.dataInfoObj) {
|
||||||
|
this.dataColumn.pop();
|
||||||
|
this.dataColumn[0].hide = true;
|
||||||
|
this.dataColumn[1].hide = true;
|
||||||
|
this.dataColumn[2].hide = true;
|
||||||
|
this.dataColumn[7].hide = false;
|
||||||
|
}
|
||||||
|
this._getTypeList();
|
||||||
|
this._getPageList(true);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
changePage(obj) {
|
||||||
|
this.pageInfo.current = obj.current;
|
||||||
|
this.pageInfo.limit = obj.limit;
|
||||||
|
this._getPageList();
|
||||||
|
},
|
||||||
|
cancelClick(isRefresh, onlyRefresh) {
|
||||||
|
if (isRefresh) {
|
||||||
|
this._getPageList(true);
|
||||||
|
}
|
||||||
|
if (onlyRefresh) return false;
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async _getTypeList() {
|
||||||
|
this.typeList = await getBasicList(33) || [];
|
||||||
|
},
|
||||||
|
//分页列表
|
||||||
|
async _getPageList(isFirst, showOk) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//this.dataList = [];
|
||||||
|
this.pageInfo.total = 0;
|
||||||
|
if (isFirst) {
|
||||||
|
this.pageInfo.current = 1;
|
||||||
|
this.pageInfo.total = 0;
|
||||||
|
}
|
||||||
|
if (this.dataInfoObj && this.dataInfoObj.FID) {
|
||||||
|
this.postData.FTeamID = this.dataInfoObj.FID;
|
||||||
|
this.postData.FIsUser = false;
|
||||||
|
}
|
||||||
|
if (this.pageTypeObj && this.pageTypeObj == 2) {
|
||||||
|
this.postData.FState = 99;
|
||||||
|
}
|
||||||
|
this.postData.FPageIndex = this.pageInfo.current;
|
||||||
|
this.postData.FPageSize = this.pageInfo.limit;
|
||||||
|
let result = await getPageList(this.postData, "Task");
|
||||||
|
result.Data.List = result.Data.List || [];
|
||||||
|
result.Data.List.forEach((item) => {
|
||||||
|
let type = this.typeList.find(s => s.FValue === item.FType);
|
||||||
|
item.FTypeName = type == null ? "" : type.FName;
|
||||||
|
let state = this.stateList.find(s => s.id === item.FState)
|
||||||
|
item.FStateName = state == null ? "" : state.name;
|
||||||
|
item.FAddDate = item.FAddDate == null ? "" : this.dateFormat(item.FAddDate);
|
||||||
|
item.FEditDate = item.FEditDate == null ? "" : this.dateFormat(item.FEditDate);
|
||||||
|
item.FFinishDate = item.FFinishDate == null ? "" : this.dateFormat(item.FFinishDate);
|
||||||
|
});
|
||||||
|
this.pageInfo.total = result.Data.Total || 0;
|
||||||
|
debugger
|
||||||
|
this.dataList = [{"F1":"1","F2":"10020421",
|
||||||
|
"F3":"","F4":"物料分类选择",
|
||||||
|
"F5":"半成品","F6":"2022-10-24 11:00",
|
||||||
|
"F7":"Kai","F8":"Kai"},
|
||||||
|
{"F1":"2","F2":"10020421","F3":"","F4":"物料编辑",
|
||||||
|
"F5":"半成品","F6":"2022-10-24 11:00","F7":"Kai","F8":"Kai"}];
|
||||||
|
this.hasLoaded = true;
|
||||||
|
},
|
||||||
|
//日期处理
|
||||||
|
dateFormat(dataStr) {
|
||||||
|
return dataStr.replace('T', ' ').split('.')[0];
|
||||||
|
},
|
||||||
|
getData(data){
|
||||||
|
this.MaterialModel = data;
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
this.showEditBox[11] = true;
|
||||||
|
this.editType = 1;
|
||||||
|
|
||||||
|
},
|
||||||
|
showEditMaterial(i){
|
||||||
|
this.showEditBox[i] = true;
|
||||||
|
},
|
||||||
|
_clickSetInfo(data, type) {
|
||||||
|
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
if (data.FType == 1) {
|
||||||
|
data.FBoxType = 1; //配方选择
|
||||||
|
} else if (data.FType == 2) {
|
||||||
|
data.FBoxType = 2; //BOM下载
|
||||||
|
} else if (data.FType == 9 || data.FType == 10) {
|
||||||
|
data.FBoxType = 4; //新包材新增、新子项包材申请
|
||||||
|
} else if ((data.FType >= 3 && data.FType <= 7) || data.FType == 11) {
|
||||||
|
data.FBoxType = 3; //视图编辑
|
||||||
|
} else if (data.FType == 8) {
|
||||||
|
data.FBoxType = 5; //组编号申请
|
||||||
|
} else if (data.FType == 12) {
|
||||||
|
data.FBoxType = 6; //成品视图物料组复核
|
||||||
|
} else if (data.FType == 13) {
|
||||||
|
data.FBoxType = 7; //流程确认完成
|
||||||
|
} else if (data.FType == 14) {
|
||||||
|
data.FBoxType = 8; //补充包材规格
|
||||||
|
} else if (data.FType == 15) {
|
||||||
|
data.FBoxType = 9; //物料选择类型
|
||||||
|
}else if(data.FType==16){
|
||||||
|
this.dataItem=data;
|
||||||
|
data.FBoxType = 10; //替代料确认
|
||||||
|
}else {
|
||||||
|
return layer.msg("未知事项类型");
|
||||||
|
}
|
||||||
|
this.objInfoObj = data;
|
||||||
|
this.editType = type;
|
||||||
|
this.showEditBox[data.FBoxType] = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//检索-检索
|
||||||
|
_clickSearch() {
|
||||||
|
this.postData = {};
|
||||||
|
for (let key in this.searchObj) {
|
||||||
|
let val = this.searchObj[key];
|
||||||
|
if (val != null && val !== "") this.postData[key] = val;
|
||||||
|
}
|
||||||
|
this._getPageList(true);
|
||||||
|
},
|
||||||
|
//检索-重置
|
||||||
|
_clickReset() {
|
||||||
|
this.searchObj = {};
|
||||||
|
this._clickSearch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@ -0,0 +1,297 @@
|
|||||||
|
<template>
|
||||||
|
<lay-container fluid="true"
|
||||||
|
:style="'padding:10px;height:'+(dataInfoObj!=undefined?(dataInfoObj.FHeight+'px'):'auto')">
|
||||||
|
<lay-row space="10">
|
||||||
|
<lay-col span="24">
|
||||||
|
<lay-card>
|
||||||
|
<lay-form :model="searchObj" class="search-box">
|
||||||
|
<lay-row class="search-items">
|
||||||
|
<lay-form-item label="物料号" prop="FSaleCode">
|
||||||
|
<lay-input v-model="searchObj.FSaleCode"></lay-input>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item label="类型" prop="FType">
|
||||||
|
<lay-select v-model="searchObj.FType">
|
||||||
|
<lay-select-option v-for="(tIdv,tIdx) in typeList" :key="tIdx" :value="tIdv.FValue"
|
||||||
|
:label="tIdv.FName"></lay-select-option>
|
||||||
|
</lay-select>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item v-if="postData.FState!=99" label="模块" prop="FState">
|
||||||
|
<lay-select v-model="searchObj.FState">
|
||||||
|
<lay-select-option v-for="(tv,tx) in stateList" :key="tx" :value="tv.id"
|
||||||
|
:label="tv.name"></lay-select-option>
|
||||||
|
</lay-select>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item label="发起日期" prop="FDateRange">
|
||||||
|
<lay-date-picker v-model="searchObj.FDateRange" range placeholder="type : date">
|
||||||
|
</lay-date-picker>
|
||||||
|
</lay-form-item>
|
||||||
|
</lay-row>
|
||||||
|
<lay-form-item class="search-btn">
|
||||||
|
<lay-button size="sm" type="primary" @click="_clickSearch">搜索</lay-button>
|
||||||
|
<lay-button size="sm" @click="_clickReset">重置</lay-button>
|
||||||
|
</lay-form-item>
|
||||||
|
</lay-form>
|
||||||
|
<lay-table :columns="dataColumn" id="id" :dataSource="dataList"
|
||||||
|
v-model:selectedKeys="selectedKeys" :checkbox="checkbox" :default-toolbar="defaultToolbar"
|
||||||
|
:page="dataList.length>0?pageInfo:null" @change="changePage">
|
||||||
|
<template v-slot:toolbar>
|
||||||
|
<lay-button size="sm" @click="_getPageList(false,true)">刷新</lay-button>
|
||||||
|
<lay-button size="sm" type="normal" @click="showEditMaterial(1)">导出</lay-button>
|
||||||
|
</template>
|
||||||
|
<template v-slot:FStateName="{ data }">
|
||||||
|
<span v-if="data.FStateName=='已完成'" style="color:#5FB878">{{ data.FStateName }}</span>
|
||||||
|
<span v-else style="color:#1E9FFF">{{ data.FStateName }}</span>
|
||||||
|
</template>
|
||||||
|
<template v-if="dataInfoObj == undefined|| !dataInfoObj.FID" v-slot:operator="{ data }">
|
||||||
|
<lay-button size="xs" type="primary" @click="showEditMaterial(3)">视图</lay-button>
|
||||||
|
</template>
|
||||||
|
</lay-table>
|
||||||
|
</lay-card>
|
||||||
|
</lay-col>
|
||||||
|
</lay-row>
|
||||||
|
<lay-layer :area="modelArea[1]" v-model="showEditBox[1]" title="新增物料">
|
||||||
|
<AddMateria v-if="showEditBox[1]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></AddMateria>
|
||||||
|
</lay-layer>
|
||||||
|
<lay-layer :area="modelArea[2]" v-model="showEditBox[2]" title="修改物料">
|
||||||
|
<EditMateria v-if="showEditBox[2]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></EditMateria>
|
||||||
|
</lay-layer>
|
||||||
|
<lay-layer :area="modelArea[3]" v-model="showEditBox[3]" title="编辑物料">
|
||||||
|
<EditView v-if="showEditBox[3]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></EditView>
|
||||||
|
</lay-layer>
|
||||||
|
</lay-container>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
watch
|
||||||
|
} from "vue";
|
||||||
|
import {
|
||||||
|
getBasicList,
|
||||||
|
getPageList
|
||||||
|
} from "/src/api/api/common";
|
||||||
|
import AddMateria from '../materia/components/AddMateria.vue';
|
||||||
|
import EditMateria from '../materia/components/EditMateria.vue';
|
||||||
|
import EditView from '../materia/components/EditView.vue';
|
||||||
|
import '@layui/layui-vue/es/checkbox/index.css';
|
||||||
|
import '@layui/layui-vue/es/radio/index.css';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
AddMateria,
|
||||||
|
EditMateria,
|
||||||
|
EditView
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
let dataColumn = [{
|
||||||
|
type: "checkbox"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "ID",
|
||||||
|
key: "F1",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},{
|
||||||
|
title: "模块",
|
||||||
|
key: "F2",
|
||||||
|
width: "300px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "功能",
|
||||||
|
key: "F3",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作描述",
|
||||||
|
key: "F4",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作时间",
|
||||||
|
key: "F5",
|
||||||
|
width: "180px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作类型",
|
||||||
|
key: "F6",
|
||||||
|
width: "400px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
title: "操作人",
|
||||||
|
key: "F7",
|
||||||
|
width: "178px",
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
const selectedKeys = ref(["1"]);
|
||||||
|
const checkbox = ref(false);
|
||||||
|
const defaultToolbar = ref(true);
|
||||||
|
const pageInfo = ref({
|
||||||
|
total: 0,
|
||||||
|
limit: 10,
|
||||||
|
current: 1
|
||||||
|
});
|
||||||
|
const dataList = ref([]);
|
||||||
|
const typeList = ref([]);
|
||||||
|
const searchObj = ref({});
|
||||||
|
const postData = ref({});
|
||||||
|
const MaterialModel= ref({});
|
||||||
|
const showEditBox = ref([false, false, false, false, false, false, false, false, false, false, false, false,false]);
|
||||||
|
const modelArea = ref(["70%", "70%", "70%", "86%", "70%", "70%", "70%", "70%", "700px", "70%", "70%","70%","70%"]);
|
||||||
|
const objInfoObj = ref({});
|
||||||
|
const editType = ref(1);
|
||||||
|
const stateList = ref([{
|
||||||
|
id: 1,
|
||||||
|
name: "进行中"
|
||||||
|
}, {
|
||||||
|
id: 2,
|
||||||
|
name: "已完成"
|
||||||
|
}]);
|
||||||
|
const hasLoaded = ref(false);
|
||||||
|
const dataItem=ref([]);
|
||||||
|
return {
|
||||||
|
selectedKeys,
|
||||||
|
checkbox,
|
||||||
|
defaultToolbar,
|
||||||
|
dataColumn,
|
||||||
|
dataList,
|
||||||
|
pageInfo,
|
||||||
|
searchObj,
|
||||||
|
postData,
|
||||||
|
typeList,
|
||||||
|
showEditBox,
|
||||||
|
modelArea,
|
||||||
|
objInfoObj,
|
||||||
|
editType,
|
||||||
|
stateList,
|
||||||
|
hasLoaded,
|
||||||
|
MaterialModel,
|
||||||
|
dataItem
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
dataInfoObj: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
|
||||||
|
pageTypeObj: {
|
||||||
|
type: Number,
|
||||||
|
default: () => 1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
if (this.dataInfoObj) {
|
||||||
|
this.dataColumn.pop();
|
||||||
|
this.dataColumn[0].hide = true;
|
||||||
|
this.dataColumn[1].hide = true;
|
||||||
|
this.dataColumn[2].hide = true;
|
||||||
|
this.dataColumn[7].hide = false;
|
||||||
|
}
|
||||||
|
this._getTypeList();
|
||||||
|
this._getPageList(true);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
changePage(obj) {
|
||||||
|
this.pageInfo.current = obj.current;
|
||||||
|
this.pageInfo.limit = obj.limit;
|
||||||
|
this._getPageList();
|
||||||
|
},
|
||||||
|
cancelClick(isRefresh, onlyRefresh) {
|
||||||
|
if (isRefresh) {
|
||||||
|
this._getPageList(true);
|
||||||
|
}
|
||||||
|
if (onlyRefresh) return false;
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async _getTypeList() {
|
||||||
|
this.typeList = await getBasicList(33) || [];
|
||||||
|
},
|
||||||
|
//分页列表
|
||||||
|
async _getPageList(isFirst, showOk) {
|
||||||
|
|
||||||
|
this.dataList = [
|
||||||
|
{"F1":"1","F2":"协同路线","F3":"KTFKP22100901-K501@测试","F4":"新增协同","F5":"2022-10-24 11:00","F6":"新增","F7":"Kai"},
|
||||||
|
{"F1":"2","F2":"协同路线","F3":"KTFKP22100901-K501@测试","F4":"查看了物料视图","F5":"2022-10-24 11:00","F6":"查看","F7":"Kai"}
|
||||||
|
];
|
||||||
|
|
||||||
|
},
|
||||||
|
//日期处理
|
||||||
|
dateFormat(dataStr) {
|
||||||
|
return dataStr.replace('T', ' ').split('.')[0];
|
||||||
|
},
|
||||||
|
getData(data){
|
||||||
|
this.MaterialModel = data;
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
this.showEditBox[11] = true;
|
||||||
|
this.editType = 1;
|
||||||
|
|
||||||
|
},
|
||||||
|
showEditMaterial(i){
|
||||||
|
this.showEditBox[i] = true;
|
||||||
|
},
|
||||||
|
_clickSetInfo(data, type) {
|
||||||
|
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
if (data.FType == 1) {
|
||||||
|
data.FBoxType = 1; //配方选择
|
||||||
|
} else if (data.FType == 2) {
|
||||||
|
data.FBoxType = 2; //BOM下载
|
||||||
|
} else if (data.FType == 9 || data.FType == 10) {
|
||||||
|
data.FBoxType = 4; //新包材新增、新子项包材申请
|
||||||
|
} else if ((data.FType >= 3 && data.FType <= 7) || data.FType == 11) {
|
||||||
|
data.FBoxType = 3; //视图编辑
|
||||||
|
} else if (data.FType == 8) {
|
||||||
|
data.FBoxType = 5; //组编号申请
|
||||||
|
} else if (data.FType == 12) {
|
||||||
|
data.FBoxType = 6; //成品视图物料组复核
|
||||||
|
} else if (data.FType == 13) {
|
||||||
|
data.FBoxType = 7; //流程确认完成
|
||||||
|
} else if (data.FType == 14) {
|
||||||
|
data.FBoxType = 8; //补充包材规格
|
||||||
|
} else if (data.FType == 15) {
|
||||||
|
data.FBoxType = 9; //物料选择类型
|
||||||
|
}else if(data.FType==16){
|
||||||
|
this.dataItem=data;
|
||||||
|
data.FBoxType = 10; //替代料确认
|
||||||
|
}else {
|
||||||
|
return layer.msg("未知事项类型");
|
||||||
|
}
|
||||||
|
this.objInfoObj = data;
|
||||||
|
this.editType = type;
|
||||||
|
this.showEditBox[data.FBoxType] = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//检索-检索
|
||||||
|
_clickSearch() {
|
||||||
|
this.postData = {};
|
||||||
|
for (let key in this.searchObj) {
|
||||||
|
let val = this.searchObj[key];
|
||||||
|
if (val != null && val !== "") this.postData[key] = val;
|
||||||
|
}
|
||||||
|
this._getPageList(true);
|
||||||
|
},
|
||||||
|
//检索-重置
|
||||||
|
_clickReset() {
|
||||||
|
this.searchObj = {};
|
||||||
|
this._clickSearch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@ -0,0 +1,344 @@
|
|||||||
|
<template>
|
||||||
|
<lay-container fluid="true"
|
||||||
|
:style="'padding:10px;height:'+(dataInfoObj!=undefined?(dataInfoObj.FHeight+'px'):'auto')">
|
||||||
|
<lay-row space="10">
|
||||||
|
<lay-col span="24">
|
||||||
|
<lay-card>
|
||||||
|
<lay-form :model="searchObj" class="search-box">
|
||||||
|
<lay-row class="search-items">
|
||||||
|
<lay-form-item label="物料号" prop="FSaleCode">
|
||||||
|
<lay-input v-model="searchObj.FSaleCode"></lay-input>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item label="当前流程" prop="FType">
|
||||||
|
<lay-select v-model="searchObj.FType">
|
||||||
|
<lay-select-option v-for="(tIdv,tIdx) in typeList" :key="tIdx" :value="tIdv.FValue"
|
||||||
|
:label="tIdv.FName"></lay-select-option>
|
||||||
|
</lay-select>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item v-if="postData.FState!=99" label="事项状态" prop="FState">
|
||||||
|
<lay-select v-model="searchObj.FState">
|
||||||
|
<lay-select-option v-for="(tv,tx) in stateList" :key="tx" :value="tv.id"
|
||||||
|
:label="tv.name"></lay-select-option>
|
||||||
|
</lay-select>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item label="发起日期" prop="FDateRange">
|
||||||
|
<lay-date-picker v-model="searchObj.FDateRange" range placeholder="type : date">
|
||||||
|
</lay-date-picker>
|
||||||
|
</lay-form-item>
|
||||||
|
</lay-row>
|
||||||
|
<lay-form-item class="search-btn">
|
||||||
|
<lay-button size="sm" type="primary" @click="_clickSearch">搜索</lay-button>
|
||||||
|
<lay-button size="sm" @click="_clickReset">重置</lay-button>
|
||||||
|
</lay-form-item>
|
||||||
|
</lay-form>
|
||||||
|
<lay-table v-if="hasLoaded" :columns="dataColumn" id="id" :dataSource="dataList"
|
||||||
|
v-model:selectedKeys="selectedKeys" :checkbox="checkbox" :default-toolbar="defaultToolbar"
|
||||||
|
:page="dataList.length>0?pageInfo:null" @change="changePage">
|
||||||
|
<template v-slot:toolbar>
|
||||||
|
<lay-button size="sm" @click="_getPageList(false,true)">刷新</lay-button>
|
||||||
|
<lay-button size="sm" type="normal" @click="showEditMaterial(1)">新增</lay-button>
|
||||||
|
<lay-button size="sm" type="primary" @click="showEditMaterial(2)">修改</lay-button>
|
||||||
|
</template>
|
||||||
|
<template v-slot:FStateName="{ data }">
|
||||||
|
<span v-if="data.FStateName=='已完成'" style="color:#5FB878">{{ data.FStateName }}</span>
|
||||||
|
<span v-else style="color:#1E9FFF">{{ data.FStateName }}</span>
|
||||||
|
</template>
|
||||||
|
<template v-if="dataInfoObj == undefined|| !dataInfoObj.FID" v-slot:operator="{ data }">
|
||||||
|
<lay-button size="xs" type="primary" @click="showEditMaterial(3)">视图</lay-button>
|
||||||
|
</template>
|
||||||
|
</lay-table>
|
||||||
|
</lay-card>
|
||||||
|
</lay-col>
|
||||||
|
</lay-row>
|
||||||
|
<lay-layer :area="modelArea[1]" v-model="showEditBox[1]" title="新增物料">
|
||||||
|
<AddMateria v-if="showEditBox[1]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></AddMateria>
|
||||||
|
</lay-layer>
|
||||||
|
<lay-layer :area="modelArea[2]" v-model="showEditBox[2]" title="修改物料">
|
||||||
|
<EditMateria v-if="showEditBox[2]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></EditMateria>
|
||||||
|
</lay-layer>
|
||||||
|
<lay-layer :area="modelArea[3]" v-model="showEditBox[3]" title="编辑物料">
|
||||||
|
<EditView v-if="showEditBox[3]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></EditView>
|
||||||
|
</lay-layer>
|
||||||
|
</lay-container>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
watch
|
||||||
|
} from "vue";
|
||||||
|
import {
|
||||||
|
getBasicList,
|
||||||
|
getPageList
|
||||||
|
} from "/src/api/api/common";
|
||||||
|
import AddMateria from '../materia/components/AddMateria.vue';
|
||||||
|
import EditMateria from '../materia/components/EditMateria.vue';
|
||||||
|
import EditView from '../materia/components/EditView.vue';
|
||||||
|
import '@layui/layui-vue/es/checkbox/index.css';
|
||||||
|
import '@layui/layui-vue/es/radio/index.css';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
AddMateria,
|
||||||
|
EditMateria,
|
||||||
|
EditView
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
let dataColumn = [
|
||||||
|
{
|
||||||
|
title: "ID",
|
||||||
|
key: "FID",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},{
|
||||||
|
title: "物料号",
|
||||||
|
key: "FMdmCode",
|
||||||
|
width: "300px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "物料描述",
|
||||||
|
key: "FSaleCode",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "试验号",
|
||||||
|
key: "FTestCode",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "产品分类",
|
||||||
|
key: "FDesc",
|
||||||
|
width: "400px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "发起时间",
|
||||||
|
key: "FAddDate",
|
||||||
|
width: "180px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "发起人",
|
||||||
|
key: "FUserName",
|
||||||
|
width: "178px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "类型",
|
||||||
|
key: "IsEdit",
|
||||||
|
width: "98px",
|
||||||
|
align: 'center',
|
||||||
|
customSlot: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "状态",
|
||||||
|
key: "FStateName",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
key: "operator",
|
||||||
|
width: "130px",
|
||||||
|
fixed: "right",
|
||||||
|
customSlot: 'operator',
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
const selectedKeys = ref(["1"]);
|
||||||
|
const checkbox = ref(false);
|
||||||
|
const defaultToolbar = ref(true);
|
||||||
|
const pageInfo = ref({
|
||||||
|
total: 0,
|
||||||
|
limit: 10,
|
||||||
|
current: 1
|
||||||
|
});
|
||||||
|
const dataList = ref([]);
|
||||||
|
const typeList = ref([]);
|
||||||
|
const searchObj = ref({});
|
||||||
|
const postData = ref({});
|
||||||
|
const MaterialModel= ref({});
|
||||||
|
const showEditBox = ref([false, false, false, false, false, false, false, false, false, false, false, false,false]);
|
||||||
|
const modelArea = ref(["70%", "70%", "70%", "86%", "70%", "70%", "70%", "70%", "700px", "70%", "70%","70%","70%"]);
|
||||||
|
const objInfoObj = ref({});
|
||||||
|
const editType = ref(1);
|
||||||
|
const stateList = ref([{
|
||||||
|
id: 1,
|
||||||
|
name: "进行中"
|
||||||
|
}, {
|
||||||
|
id: 2,
|
||||||
|
name: "已完成"
|
||||||
|
}]);
|
||||||
|
const hasLoaded = ref(false);
|
||||||
|
const dataItem=ref([]);
|
||||||
|
return {
|
||||||
|
selectedKeys,
|
||||||
|
checkbox,
|
||||||
|
defaultToolbar,
|
||||||
|
dataColumn,
|
||||||
|
dataList,
|
||||||
|
pageInfo,
|
||||||
|
searchObj,
|
||||||
|
postData,
|
||||||
|
typeList,
|
||||||
|
showEditBox,
|
||||||
|
modelArea,
|
||||||
|
objInfoObj,
|
||||||
|
editType,
|
||||||
|
stateList,
|
||||||
|
hasLoaded,
|
||||||
|
MaterialModel,
|
||||||
|
dataItem
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
dataInfoObj: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
|
||||||
|
pageTypeObj: {
|
||||||
|
type: Number,
|
||||||
|
default: () => 1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
if (this.dataInfoObj) {
|
||||||
|
this.dataColumn.pop();
|
||||||
|
this.dataColumn[0].hide = true;
|
||||||
|
this.dataColumn[1].hide = true;
|
||||||
|
this.dataColumn[2].hide = true;
|
||||||
|
this.dataColumn[7].hide = false;
|
||||||
|
}
|
||||||
|
this._getTypeList();
|
||||||
|
this._getPageList(true);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
changePage(obj) {
|
||||||
|
this.pageInfo.current = obj.current;
|
||||||
|
this.pageInfo.limit = obj.limit;
|
||||||
|
this._getPageList();
|
||||||
|
},
|
||||||
|
cancelClick(isRefresh, onlyRefresh) {
|
||||||
|
if (isRefresh) {
|
||||||
|
this._getPageList(true);
|
||||||
|
}
|
||||||
|
if (onlyRefresh) return false;
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async _getTypeList() {
|
||||||
|
this.typeList = await getBasicList(33) || [];
|
||||||
|
},
|
||||||
|
//分页列表
|
||||||
|
async _getPageList(isFirst, showOk) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//this.dataList = [];
|
||||||
|
this.pageInfo.total = 0;
|
||||||
|
if (isFirst) {
|
||||||
|
this.pageInfo.current = 1;
|
||||||
|
this.pageInfo.total = 0;
|
||||||
|
}
|
||||||
|
if (this.dataInfoObj && this.dataInfoObj.FID) {
|
||||||
|
this.postData.FTeamID = this.dataInfoObj.FID;
|
||||||
|
this.postData.FIsUser = false;
|
||||||
|
}
|
||||||
|
if (this.pageTypeObj && this.pageTypeObj == 2) {
|
||||||
|
this.postData.FState = 99;
|
||||||
|
}
|
||||||
|
this.postData.FPageIndex = this.pageInfo.current;
|
||||||
|
this.postData.FPageSize = this.pageInfo.limit;
|
||||||
|
let result = await getPageList(this.postData, "Task");
|
||||||
|
result.Data.List = result.Data.List || [];
|
||||||
|
result.Data.List.forEach((item) => {
|
||||||
|
let type = this.typeList.find(s => s.FValue === item.FType);
|
||||||
|
item.FTypeName = type == null ? "" : type.FName;
|
||||||
|
let state = this.stateList.find(s => s.id === item.FState)
|
||||||
|
item.FStateName = state == null ? "" : state.name;
|
||||||
|
item.FAddDate = item.FAddDate == null ? "" : this.dateFormat(item.FAddDate);
|
||||||
|
item.FEditDate = item.FEditDate == null ? "" : this.dateFormat(item.FEditDate);
|
||||||
|
item.FFinishDate = item.FFinishDate == null ? "" : this.dateFormat(item.FFinishDate);
|
||||||
|
item["IsEdit"]=Math.floor(Math.random()*10)==0?"编辑":"新增";
|
||||||
|
});
|
||||||
|
this.pageInfo.total = result.Data.Total || 0;
|
||||||
|
debugger
|
||||||
|
this.dataList = result.Data.List;
|
||||||
|
this.hasLoaded = true;
|
||||||
|
},
|
||||||
|
//日期处理
|
||||||
|
dateFormat(dataStr) {
|
||||||
|
return dataStr.replace('T', ' ').split('.')[0];
|
||||||
|
},
|
||||||
|
getData(data){
|
||||||
|
this.MaterialModel = data;
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
this.showEditBox[11] = true;
|
||||||
|
this.editType = 1;
|
||||||
|
|
||||||
|
},
|
||||||
|
showEditMaterial(i){
|
||||||
|
this.showEditBox[i] = true;
|
||||||
|
},
|
||||||
|
_clickSetInfo(data, type) {
|
||||||
|
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
if (data.FType == 1) {
|
||||||
|
data.FBoxType = 1; //配方选择
|
||||||
|
} else if (data.FType == 2) {
|
||||||
|
data.FBoxType = 2; //BOM下载
|
||||||
|
} else if (data.FType == 9 || data.FType == 10) {
|
||||||
|
data.FBoxType = 4; //新包材新增、新子项包材申请
|
||||||
|
} else if ((data.FType >= 3 && data.FType <= 7) || data.FType == 11) {
|
||||||
|
data.FBoxType = 3; //视图编辑
|
||||||
|
} else if (data.FType == 8) {
|
||||||
|
data.FBoxType = 5; //组编号申请
|
||||||
|
} else if (data.FType == 12) {
|
||||||
|
data.FBoxType = 6; //成品视图物料组复核
|
||||||
|
} else if (data.FType == 13) {
|
||||||
|
data.FBoxType = 7; //流程确认完成
|
||||||
|
} else if (data.FType == 14) {
|
||||||
|
data.FBoxType = 8; //补充包材规格
|
||||||
|
} else if (data.FType == 15) {
|
||||||
|
data.FBoxType = 9; //物料选择类型
|
||||||
|
}else if(data.FType==16){
|
||||||
|
this.dataItem=data;
|
||||||
|
data.FBoxType = 10; //替代料确认
|
||||||
|
}else {
|
||||||
|
return layer.msg("未知事项类型");
|
||||||
|
}
|
||||||
|
this.objInfoObj = data;
|
||||||
|
this.editType = type;
|
||||||
|
this.showEditBox[data.FBoxType] = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//检索-检索
|
||||||
|
_clickSearch() {
|
||||||
|
this.postData = {};
|
||||||
|
for (let key in this.searchObj) {
|
||||||
|
let val = this.searchObj[key];
|
||||||
|
if (val != null && val !== "") this.postData[key] = val;
|
||||||
|
}
|
||||||
|
this._getPageList(true);
|
||||||
|
},
|
||||||
|
//检索-重置
|
||||||
|
_clickReset() {
|
||||||
|
this.searchObj = {};
|
||||||
|
this._clickSearch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,118 @@
|
|||||||
|
<template>
|
||||||
|
<lay-table style="margin:0 0 30px 0;" height="200px" :columns="dataColumn" :data-source="dataList">
|
||||||
|
<template v-slot:toolbar>
|
||||||
|
<p style="float:left;">配方视图</p>
|
||||||
|
</template>
|
||||||
|
</lay-table>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref
|
||||||
|
} from 'vue';
|
||||||
|
import {
|
||||||
|
getTeamworkView
|
||||||
|
} from "/src/api/api/teamwork";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
setup() {
|
||||||
|
const viewList = ref([]);
|
||||||
|
const dataColumn = ref([
|
||||||
|
{type: 'number', title: '序号', width: '56'},
|
||||||
|
{key: '工厂', title: '工厂', align: 'center', width: '130px'},
|
||||||
|
{key: '开始生效日期', title: '开始生效日期', align: 'center', width: '130px'},
|
||||||
|
{key: 'BOM用途', title: 'BOM用途', align: 'center', width: '130px'},
|
||||||
|
{key: 'BOM状态', title: 'BOM状态', align: 'center', width: '130px'},
|
||||||
|
{key: '可选文本', title: '可选文本', align: 'center', width: '130px'},
|
||||||
|
{key: '可选BOM', title: '可选BOM', align: 'center', width: '130px'},
|
||||||
|
{key: '父项编码', title: '父项编码', align: 'center', width: '200px'},
|
||||||
|
{key: '父项描述', title: '父项描述', align: 'center', width: '300px'},
|
||||||
|
{key: '基本数量', title: '基本数量', align: 'center', width: '130px'},
|
||||||
|
{key: '基本单位', title: '基本单位', align: 'center', width: '130px'},
|
||||||
|
{key: '子项序号', title: '子项序号', align: 'center', width: '130px'},
|
||||||
|
{key: '项目类别', title: '项目类别', align: 'center', width: '130px'},
|
||||||
|
{key: '子项编码', title: '子项编码', align: 'center', width: '200px'},
|
||||||
|
{key: '子件描述', title: '子件描述', align: 'center', width: '300px'},
|
||||||
|
{key: '组件数量', title: '组件数量', align: 'center', width: '130px'},
|
||||||
|
{key: '计量单位', title: '计量单位', align: 'center', width: '130px'},
|
||||||
|
{key: '工程变更号', title: '工程变更号', align: 'center', width: '130px'},
|
||||||
|
{key: '项目ID', title: '项目ID', align: 'center', width: '130px'},
|
||||||
|
{key: '物料供应标识符', title: '物料供应标识符', align: 'center', width: '130px'},
|
||||||
|
{key: '备件标示', title: '备件标示', align: 'center', width: '130px'},
|
||||||
|
{key: '生产仓储地点', title: '生产仓储地点', align: 'center', width: '130px'},
|
||||||
|
{key: '组件损耗率', title: '组件损耗率', align: 'center', width: '130px'},
|
||||||
|
{key: '成本核算标识相关', title: '成本核算标识相关', align: 'center', width: '130px'},
|
||||||
|
{key: '生产相关', title: '生产相关', align: 'center', width: '130px'},
|
||||||
|
{key: 'BOM项目文本1', title: 'BOM项目文本1', align: 'center', width: '130px'},
|
||||||
|
{key: 'BOM项目文本2', title: 'BOM项目文本2', align: 'center', width: '130px'},
|
||||||
|
{key: '替代项目组', title: '替代项目组', align: 'center', width: '130px'},
|
||||||
|
{key: '优先级', title: '优先级', align: 'center', width: '130px'},
|
||||||
|
{key: '策略', title: '策略', align: 'center', width: '130px'},
|
||||||
|
{key: '使用可能性', title: '使用可能性', align: 'center', width: '130px'},
|
||||||
|
{key: '固定损耗数量', title: '固定损耗数量', align: 'center', width: '130px'}
|
||||||
|
]);
|
||||||
|
const dataList = ref([]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
viewList,
|
||||||
|
dataColumn,
|
||||||
|
dataList
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
teamId: {
|
||||||
|
type: String,
|
||||||
|
default: () => ""
|
||||||
|
},
|
||||||
|
halfId: {
|
||||||
|
type: String,
|
||||||
|
default: () => ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initPage();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async initPage() {
|
||||||
|
let dataColumn = [{
|
||||||
|
type: "number",
|
||||||
|
title: "序号",
|
||||||
|
width: "56"
|
||||||
|
}];
|
||||||
|
let dataList = [];
|
||||||
|
|
||||||
|
let postData = {
|
||||||
|
FTeamID: this.teamId,
|
||||||
|
FViewType: 2,
|
||||||
|
FType: 1,
|
||||||
|
HalfId : this.halfId
|
||||||
|
};
|
||||||
|
|
||||||
|
let result = await getTeamworkView(postData);
|
||||||
|
|
||||||
|
let formulaList = result["List1"]
|
||||||
|
|
||||||
|
if (formulaList) {
|
||||||
|
for (let key in formulaList[0]) {
|
||||||
|
let width = (key.indexOf("描述") != -1 || key == "文本" || key == "物料") ? "300px" :
|
||||||
|
"130px";
|
||||||
|
width = key.indexOf("编码") != -1 ? "200px" : width;
|
||||||
|
dataColumn.push({
|
||||||
|
key: key,
|
||||||
|
title: key.split('.').pop(),
|
||||||
|
align: "center",
|
||||||
|
width: width
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
formulaList.forEach((item) => {
|
||||||
|
dataList.push(item);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// this.dataColumn = dataColumn;
|
||||||
|
this.dataList = dataList;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
@ -0,0 +1,78 @@
|
|||||||
|
<template>
|
||||||
|
<lay-container>
|
||||||
|
<view class="layui-item33 color999" :style="'max-height:900px'">
|
||||||
|
<lay-row space="10">
|
||||||
|
<lay-col md="4" sm="12" xs="24" v-for="(item, index) in columns">
|
||||||
|
<lay-checkbox-group v-model="checkedItem">
|
||||||
|
<lay-checkbox :name="item.title" skin="primary" :value="item.key">
|
||||||
|
{{ item.title }}
|
||||||
|
</lay-checkbox>
|
||||||
|
</lay-checkbox-group>
|
||||||
|
</lay-col>
|
||||||
|
</lay-row>
|
||||||
|
</view>
|
||||||
|
<view class="menuBtn">
|
||||||
|
<lay-button type="primary" @click="submitClick">确定</lay-button>
|
||||||
|
<lay-button @click="cancelClick">取消</lay-button>
|
||||||
|
</view>
|
||||||
|
</lay-container>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref
|
||||||
|
} from 'vue';
|
||||||
|
export default {
|
||||||
|
setup() {
|
||||||
|
const columnList = ref([]);
|
||||||
|
const checkedItem = ref([]);
|
||||||
|
|
||||||
|
return {
|
||||||
|
columnList,
|
||||||
|
checkedItem,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
columns: {
|
||||||
|
type: Object,
|
||||||
|
default: () => [],
|
||||||
|
},
|
||||||
|
freezingColumns: {
|
||||||
|
type: Object,
|
||||||
|
default: () => [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.initPage();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
initPage() {
|
||||||
|
this.columnList = this.columns;
|
||||||
|
this.checkedItem = this.freezingColumns.concat();
|
||||||
|
},
|
||||||
|
cancelClick() {
|
||||||
|
this.$emit('cancelClick', this.freezingColumns);
|
||||||
|
},
|
||||||
|
submitClick() {
|
||||||
|
this.$emit('cancelClick', this.checkedItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.layui-item33 {
|
||||||
|
width: 90%;
|
||||||
|
padding-right: 30px;
|
||||||
|
margin: 30px auto 10px;
|
||||||
|
display: block;
|
||||||
|
overflow: auto;
|
||||||
|
position: relative;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menuBtn {
|
||||||
|
display: block;
|
||||||
|
text-align: center;
|
||||||
|
width: 96%;
|
||||||
|
margin: 20px auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -0,0 +1,85 @@
|
|||||||
|
<template>
|
||||||
|
<lay-table class="empty-small2 empty-small3" style="margin:30px 0;" height="200px" :columns="dataColumn" id="FID"
|
||||||
|
:dataSource="dataList">
|
||||||
|
<template v-slot:toolbar>
|
||||||
|
<p style="float:right;">操作日志</p>
|
||||||
|
<lay-button size="sm" @click="_getPageList()">刷新</lay-button>
|
||||||
|
</template>
|
||||||
|
</lay-table>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref
|
||||||
|
} from 'vue';
|
||||||
|
import {
|
||||||
|
getPageList
|
||||||
|
} from "/src/api/api/common";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
setup() {
|
||||||
|
let dataColumn = [{
|
||||||
|
title: "序号",
|
||||||
|
key: "RowIndex",
|
||||||
|
width: "80px"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作时间",
|
||||||
|
key: "FAddDate",
|
||||||
|
width: "200px"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作人",
|
||||||
|
key: "FOptUser",
|
||||||
|
width: "180px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "说明",
|
||||||
|
key: "FDesc"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
dataColumn.forEach((item) => {
|
||||||
|
item.align = "center";
|
||||||
|
});
|
||||||
|
const dataList = ref([]);
|
||||||
|
return {
|
||||||
|
dataColumn,
|
||||||
|
dataList
|
||||||
|
}
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
dataInfoObj: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
setTimeout((item) => {
|
||||||
|
this._getPageList();
|
||||||
|
}, 100);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
cancelClick(isRefresh) {
|
||||||
|
this.$emit('cancelClick', isRefresh !== undefined ? isRefresh : false);
|
||||||
|
},
|
||||||
|
//日期处理
|
||||||
|
dateFormat(dataStr) {
|
||||||
|
return dataStr.replace('T', ' ').split('.')[0];
|
||||||
|
},
|
||||||
|
async _getPageList() {
|
||||||
|
if (this.dataInfoObj.FTeamID) {
|
||||||
|
let postObj = {
|
||||||
|
FTeamID: this.dataInfoObj.FTeamID,
|
||||||
|
FType: this.dataInfoObj.FType,
|
||||||
|
FPageSize: 99999
|
||||||
|
};
|
||||||
|
let result = await getPageList(postObj, 'OperateLog');
|
||||||
|
this.dataList = result.Data.List || [];
|
||||||
|
this.dataList.forEach(item => {
|
||||||
|
item.FAddDate = item.FAddDate == null ? "" : this.dateFormat(item.FAddDate);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
@ -0,0 +1,344 @@
|
|||||||
|
<template>
|
||||||
|
<lay-container fluid="true"
|
||||||
|
:style="'padding:10px;height:'+(dataInfoObj!=undefined?(dataInfoObj.FHeight+'px'):'auto')">
|
||||||
|
<lay-row space="10">
|
||||||
|
<lay-col span="24">
|
||||||
|
<lay-card>
|
||||||
|
<lay-form :model="searchObj" class="search-box">
|
||||||
|
<lay-row class="search-items">
|
||||||
|
<lay-form-item label="物料号" prop="FSaleCode">
|
||||||
|
<lay-input v-model="searchObj.FSaleCode"></lay-input>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item label="类型" prop="FType">
|
||||||
|
<lay-select v-model="searchObj.FType">
|
||||||
|
<lay-select-option v-for="(tIdv,tIdx) in typeList" :key="tIdx" :value="tIdv.FValue"
|
||||||
|
:label="tIdv.FName"></lay-select-option>
|
||||||
|
</lay-select>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item v-if="postData.FState!=99" label="事项状态" prop="FState">
|
||||||
|
<lay-select v-model="searchObj.FState">
|
||||||
|
<lay-select-option v-for="(tv,tx) in stateList" :key="tx" :value="tv.id"
|
||||||
|
:label="tv.name"></lay-select-option>
|
||||||
|
</lay-select>
|
||||||
|
</lay-form-item>
|
||||||
|
<lay-form-item label="发起日期" prop="FDateRange">
|
||||||
|
<lay-date-picker v-model="searchObj.FDateRange" range placeholder="type : date">
|
||||||
|
</lay-date-picker>
|
||||||
|
</lay-form-item>
|
||||||
|
</lay-row>
|
||||||
|
<lay-form-item class="search-btn">
|
||||||
|
<lay-button size="sm" type="primary" @click="_clickSearch">搜索</lay-button>
|
||||||
|
<lay-button size="sm" @click="_clickReset">重置</lay-button>
|
||||||
|
</lay-form-item>
|
||||||
|
</lay-form>
|
||||||
|
<lay-table v-if="hasLoaded" :columns="dataColumn" id="id" :dataSource="dataList"
|
||||||
|
v-model:selectedKeys="selectedKeys" :checkbox="checkbox" :default-toolbar="defaultToolbar"
|
||||||
|
:page="dataList.length>0?pageInfo:null" @change="changePage">
|
||||||
|
<template v-slot:toolbar>
|
||||||
|
<lay-button size="sm" @click="_getPageList(false,true)">刷新</lay-button>
|
||||||
|
<lay-button size="sm" type="normal" style="float:right" @click="showEditMaterial(1)">导出</lay-button>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<template v-slot:FStateName="{ data }">
|
||||||
|
<span v-if="data.FStateName=='已完成'" style="color:#5FB878">{{ data.FStateName }}</span>
|
||||||
|
<span v-else style="color:#1E9FFF">{{ data.FStateName }}</span>
|
||||||
|
</template>
|
||||||
|
<template v-if="dataInfoObj == undefined|| !dataInfoObj.FID" v-slot:operator="{ data }">
|
||||||
|
<lay-button size="xs" type="primary" @click="showEditMaterial(3)">操作</lay-button>
|
||||||
|
</template>
|
||||||
|
</lay-table>
|
||||||
|
</lay-card>
|
||||||
|
</lay-col>
|
||||||
|
</lay-row>
|
||||||
|
<lay-layer :area="modelArea[1]" v-model="showEditBox[1]" :title="新增物料">
|
||||||
|
<AddMateria v-if="showEditBox[1]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></AddMateria>
|
||||||
|
</lay-layer>
|
||||||
|
<lay-layer :area="modelArea[2]" v-model="showEditBox[2]" :title="编辑物料">
|
||||||
|
<EditMateria v-if="showEditBox[2]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></EditMateria>
|
||||||
|
</lay-layer>
|
||||||
|
<lay-layer :area="modelArea[3]" v-model="showEditBox[3]" :title="编辑物料">
|
||||||
|
<EditView v-if="showEditBox[3]" :dataInfoObj="objInfoObj" @cancelClick="cancelClick"></EditView>
|
||||||
|
</lay-layer>
|
||||||
|
</lay-container>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import {
|
||||||
|
ref,
|
||||||
|
watch
|
||||||
|
} from "vue";
|
||||||
|
import {
|
||||||
|
getBasicList,
|
||||||
|
getPageList
|
||||||
|
} from "/src/api/api/common";
|
||||||
|
import AddMateria from '../materia/components/AddMateria.vue';
|
||||||
|
import EditMateria from '../materia/components/EditMateria.vue';
|
||||||
|
import EditView from '../materia/components/EditView.vue';
|
||||||
|
import '@layui/layui-vue/es/checkbox/index.css';
|
||||||
|
import '@layui/layui-vue/es/radio/index.css';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
AddMateria,
|
||||||
|
EditMateria,
|
||||||
|
EditView
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
let dataColumn = [
|
||||||
|
{
|
||||||
|
title: "编号",
|
||||||
|
key: "FID",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},{
|
||||||
|
title: "物料号",
|
||||||
|
key: "FMdmCode",
|
||||||
|
width: "300px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "物料描述",
|
||||||
|
key: "FSaleCode",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "试验号",
|
||||||
|
key: "FTestCode",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center',
|
||||||
|
hide: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "来源",
|
||||||
|
key: "FDesc",
|
||||||
|
width: "160px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "产品分类",
|
||||||
|
key: "FDesc",
|
||||||
|
width: "400px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "发起时间",
|
||||||
|
key: "FAddDate",
|
||||||
|
width: "180px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "发起人",
|
||||||
|
key: "FUserName",
|
||||||
|
width: "178px",
|
||||||
|
align: 'center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "负责人",
|
||||||
|
key: "IsEdit",
|
||||||
|
width: "98px",
|
||||||
|
align: 'center',
|
||||||
|
customSlot: '',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "操作",
|
||||||
|
key: "operator",
|
||||||
|
width: "130px",
|
||||||
|
fixed: "right",
|
||||||
|
customSlot: 'operator',
|
||||||
|
align: 'center'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
const selectedKeys = ref(["1"]);
|
||||||
|
const checkbox = ref(false);
|
||||||
|
const defaultToolbar = ref(true);
|
||||||
|
const pageInfo = ref({
|
||||||
|
total: 0,
|
||||||
|
limit: 10,
|
||||||
|
current: 1
|
||||||
|
});
|
||||||
|
const dataList = ref([]);
|
||||||
|
const typeList = ref([]);
|
||||||
|
const searchObj = ref({});
|
||||||
|
const postData = ref({});
|
||||||
|
const MaterialModel= ref({});
|
||||||
|
const showEditBox = ref([false, false, false, false, false, false, false, false, false, false, false, false,false]);
|
||||||
|
const modelArea = ref(["70%", "70%", "70%", "86%", "70%", "70%", "70%", "70%", "700px", "70%", "70%","70%","70%"]);
|
||||||
|
const objInfoObj = ref({});
|
||||||
|
const editType = ref(1);
|
||||||
|
const stateList = ref([{
|
||||||
|
id: 1,
|
||||||
|
name: "进行中"
|
||||||
|
}, {
|
||||||
|
id: 2,
|
||||||
|
name: "已完成"
|
||||||
|
}]);
|
||||||
|
const hasLoaded = ref(false);
|
||||||
|
const dataItem=ref([]);
|
||||||
|
return {
|
||||||
|
selectedKeys,
|
||||||
|
checkbox,
|
||||||
|
defaultToolbar,
|
||||||
|
dataColumn,
|
||||||
|
dataList,
|
||||||
|
pageInfo,
|
||||||
|
searchObj,
|
||||||
|
postData,
|
||||||
|
typeList,
|
||||||
|
showEditBox,
|
||||||
|
modelArea,
|
||||||
|
objInfoObj,
|
||||||
|
editType,
|
||||||
|
stateList,
|
||||||
|
hasLoaded,
|
||||||
|
MaterialModel,
|
||||||
|
dataItem
|
||||||
|
};
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
dataInfoObj: {
|
||||||
|
type: Object,
|
||||||
|
default: () => {},
|
||||||
|
},
|
||||||
|
|
||||||
|
pageTypeObj: {
|
||||||
|
type: Number,
|
||||||
|
default: () => 1,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
if (this.dataInfoObj) {
|
||||||
|
this.dataColumn.pop();
|
||||||
|
this.dataColumn[0].hide = true;
|
||||||
|
this.dataColumn[1].hide = true;
|
||||||
|
this.dataColumn[2].hide = true;
|
||||||
|
this.dataColumn[7].hide = false;
|
||||||
|
}
|
||||||
|
this._getTypeList();
|
||||||
|
this._getPageList(true);
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
changePage(obj) {
|
||||||
|
this.pageInfo.current = obj.current;
|
||||||
|
this.pageInfo.limit = obj.limit;
|
||||||
|
this._getPageList();
|
||||||
|
},
|
||||||
|
cancelClick(isRefresh, onlyRefresh) {
|
||||||
|
if (isRefresh) {
|
||||||
|
this._getPageList(true);
|
||||||
|
}
|
||||||
|
if (onlyRefresh) return false;
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async _getTypeList() {
|
||||||
|
this.typeList = await getBasicList(33) || [];
|
||||||
|
},
|
||||||
|
//分页列表
|
||||||
|
async _getPageList(isFirst, showOk) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//this.dataList = [];
|
||||||
|
this.pageInfo.total = 0;
|
||||||
|
if (isFirst) {
|
||||||
|
this.pageInfo.current = 1;
|
||||||
|
this.pageInfo.total = 0;
|
||||||
|
}
|
||||||
|
if (this.dataInfoObj && this.dataInfoObj.FID) {
|
||||||
|
this.postData.FTeamID = this.dataInfoObj.FID;
|
||||||
|
this.postData.FIsUser = false;
|
||||||
|
}
|
||||||
|
if (this.pageTypeObj && this.pageTypeObj == 2) {
|
||||||
|
this.postData.FState = 99;
|
||||||
|
}
|
||||||
|
this.postData.FPageIndex = this.pageInfo.current;
|
||||||
|
this.postData.FPageSize = this.pageInfo.limit;
|
||||||
|
let result = await getPageList(this.postData, "Task");
|
||||||
|
result.Data.List = result.Data.List || [];
|
||||||
|
result.Data.List.forEach((item) => {
|
||||||
|
let type = this.typeList.find(s => s.FValue === item.FType);
|
||||||
|
item.FTypeName = type == null ? "" : type.FName;
|
||||||
|
let state = this.stateList.find(s => s.id === item.FState)
|
||||||
|
item.FStateName = state == null ? "" : state.name;
|
||||||
|
item.FAddDate = item.FAddDate == null ? "" : this.dateFormat(item.FAddDate);
|
||||||
|
item.FEditDate = item.FEditDate == null ? "" : this.dateFormat(item.FEditDate);
|
||||||
|
item.FFinishDate = item.FFinishDate == null ? "" : this.dateFormat(item.FFinishDate);
|
||||||
|
});
|
||||||
|
this.pageInfo.total = result.Data.Total || 0;
|
||||||
|
debugger
|
||||||
|
this.dataList = result.Data.List;
|
||||||
|
debugger
|
||||||
|
this.hasLoaded = true;
|
||||||
|
},
|
||||||
|
//日期处理
|
||||||
|
dateFormat(dataStr) {
|
||||||
|
return dataStr.replace('T', ' ').split('.')[0];
|
||||||
|
},
|
||||||
|
getData(data){
|
||||||
|
this.MaterialModel = data;
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
this.showEditBox[11] = true;
|
||||||
|
this.editType = 1;
|
||||||
|
|
||||||
|
},
|
||||||
|
showEditMaterial(i){
|
||||||
|
this.showEditBox[i] = true;
|
||||||
|
},
|
||||||
|
_clickSetInfo(data, type) {
|
||||||
|
|
||||||
|
for (let i = 0; i < this.showEditBox.length; i++) {
|
||||||
|
this.showEditBox[i] = false;
|
||||||
|
}
|
||||||
|
if (data.FType == 1) {
|
||||||
|
data.FBoxType = 1; //配方选择
|
||||||
|
} else if (data.FType == 2) {
|
||||||
|
data.FBoxType = 2; //BOM下载
|
||||||
|
} else if (data.FType == 9 || data.FType == 10) {
|
||||||
|
data.FBoxType = 4; //新包材新增、新子项包材申请
|
||||||
|
} else if ((data.FType >= 3 && data.FType <= 7) || data.FType == 11) {
|
||||||
|
data.FBoxType = 3; //视图编辑
|
||||||
|
} else if (data.FType == 8) {
|
||||||
|
data.FBoxType = 5; //组编号申请
|
||||||
|
} else if (data.FType == 12) {
|
||||||
|
data.FBoxType = 6; //成品视图物料组复核
|
||||||
|
} else if (data.FType == 13) {
|
||||||
|
data.FBoxType = 7; //流程确认完成
|
||||||
|
} else if (data.FType == 14) {
|
||||||
|
data.FBoxType = 8; //补充包材规格
|
||||||
|
} else if (data.FType == 15) {
|
||||||
|
data.FBoxType = 9; //物料选择类型
|
||||||
|
}else if(data.FType==16){
|
||||||
|
this.dataItem=data;
|
||||||
|
data.FBoxType = 10; //替代料确认
|
||||||
|
}else {
|
||||||
|
return layer.msg("未知事项类型");
|
||||||
|
}
|
||||||
|
this.objInfoObj = data;
|
||||||
|
this.editType = type;
|
||||||
|
this.showEditBox[data.FBoxType] = true;
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
//检索-检索
|
||||||
|
_clickSearch() {
|
||||||
|
this.postData = {};
|
||||||
|
for (let key in this.searchObj) {
|
||||||
|
let val = this.searchObj[key];
|
||||||
|
if (val != null && val !== "") this.postData[key] = val;
|
||||||
|
}
|
||||||
|
this._getPageList(true);
|
||||||
|
},
|
||||||
|
//检索-重置
|
||||||
|
_clickReset() {
|
||||||
|
this.searchObj = {};
|
||||||
|
this._clickSearch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
Loading…
Reference in new issue