From 55523a761f989bff1ef6b72640fa7c1d059386c6 Mon Sep 17 00:00:00 2001 From: zhengw <247276359@qq.com> Date: Fri, 26 Dec 2025 17:26:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9B=BE=E6=A0=87=E5=92=8C?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miniprogram/app.json | 33 +- miniprogram/app.wxss | 11 + miniprogram/assets/home.png | Bin 0 -> 1309 bytes miniprogram/assets/home2.png | Bin 0 -> 1324 bytes miniprogram/assets/qrcode.png | Bin 0 -> 1109 bytes miniprogram/assets/qrcode2.png | Bin 0 -> 1128 bytes miniprogram/assets/scan.png | Bin 0 -> 897 bytes miniprogram/assets/scan2.png | Bin 0 -> 911 bytes miniprogram/assets/user.png | Bin 0 -> 2239 bytes miniprogram/assets/user2.png | Bin 0 -> 2270 bytes miniprogram/miniprogram_npm/big.js/index.js | 4 +- .../pages/components/page-plugin/index.wxml | 2 +- .../pages/components/popup-plugin/index.json | 6 + .../pages/components/popup-plugin/index.ts | 31 ++ .../pages/components/popup-plugin/index.wxml | 8 + .../pages/components/popup-plugin/index.wxss | 1 + .../pages/processEntry/processEntry.js | 432 ++++++++++++++++++ .../pages/processEntry/processEntry.json | 9 + .../pages/processEntry/processEntry.wxml | 111 +++++ .../pages/processEntry/processEntry.wxss | 50 ++ miniprogram/utils/config.ts | 2 +- miniprogram/utils/voiceUtil.js | 75 +++ 22 files changed, 768 insertions(+), 7 deletions(-) create mode 100644 miniprogram/assets/home.png create mode 100644 miniprogram/assets/home2.png create mode 100644 miniprogram/assets/qrcode.png create mode 100644 miniprogram/assets/qrcode2.png create mode 100644 miniprogram/assets/scan.png create mode 100644 miniprogram/assets/scan2.png create mode 100644 miniprogram/assets/user.png create mode 100644 miniprogram/assets/user2.png create mode 100644 miniprogram/pages/components/popup-plugin/index.json create mode 100644 miniprogram/pages/components/popup-plugin/index.ts create mode 100644 miniprogram/pages/components/popup-plugin/index.wxml create mode 100644 miniprogram/pages/components/popup-plugin/index.wxss create mode 100644 miniprogram/pages/processEntry/processEntry.js create mode 100644 miniprogram/pages/processEntry/processEntry.json create mode 100644 miniprogram/pages/processEntry/processEntry.wxml create mode 100644 miniprogram/pages/processEntry/processEntry.wxss create mode 100644 miniprogram/utils/voiceUtil.js diff --git a/miniprogram/app.json b/miniprogram/app.json index 8f350fe..e8e35bd 100644 --- a/miniprogram/app.json +++ b/miniprogram/app.json @@ -2,17 +2,44 @@ "pages": [ "pages/index/index", "pages/agreement/agreement", - "pages/my/my" + "pages/my/my", + "pages/processEntry/processEntry" ], "window": { "navigationBarTextStyle": "black", - "navigationBarTitleText": "Weixin", + "navigationBarTitleText": "易宝赞管理系统普惠版", "navigationBarBackgroundColor": "#ffffff" }, "componentFramework": "glass-easel", "lazyCodeLoading": "requiredComponents", "usingComponents": { - "page-plugin": "pages/components/page-plugin" + "page-plugin": "pages/components/page-plugin", + "t-button": "tdesign-miniprogram/button/button" + }, + "tabBar": { + "color": "#333333", + "selectedColor": "#0052d9", + "borderStyle": "black", + "list": [ + { + "iconPath": "assets/home.png", + "selectedIconPath": "assets/home2.png", + "pagePath": "pages/index/index", + "text": "首页" + }, + { + "iconPath": "assets/scan.png", + "selectedIconPath": "assets/scan2.png", + "pagePath": "pages/processEntry/processEntry", + "text": "扫码" + }, + { + "iconPath": "assets/user.png", + "selectedIconPath": "assets/user2.png", + "pagePath": "pages/my/my", + "text": "我的" + } + ] }, "resolveAlias": { "@/*": "/*" diff --git a/miniprogram/app.wxss b/miniprogram/app.wxss index dcc9241..6fafd1e 100644 --- a/miniprogram/app.wxss +++ b/miniprogram/app.wxss @@ -1,3 +1,14 @@ button.t-button { font-weight: normal; + margin-left: 0; + margin-right: 0; +} + +view.t-input { + flex: none; + padding: 12px; +} + +view.t-popup__close { + padding: 6px; } diff --git a/miniprogram/assets/home.png b/miniprogram/assets/home.png new file mode 100644 index 0000000000000000000000000000000000000000..076c90a28b846c7c162c9c48e484614754b3ea9d GIT binary patch literal 1309 zcmV+&1>*XNP))nD|`lLh`s!Ac~17nyq)>vxk=MtTgLy1E#MJj z6J|0V(IYYlFr@I6=n)wN7*aT0iT(Zk-GhUJxxT)>eGF^0mcm&?;APv}+kXZ@knQN` zSjBeEnnKLPP9hEs4c!Lb4m50Mhlhu+#ayqI;m#qV;%;H3cMwu5l}Zl*IU*fMd52So zsK6;y+}&y>fXurF=?o$OZvbxwQM0)Q=>#GGuS4!WqV84!S@#%QC#H@Fz^ho?1B9+E z=nl97nJOXxCjs;bp=%3EOH1c*&}qoj5CJ#=oW}@VBfyO7kf|Wz)%6PGo+5Ou3`i%q z44F70-UnXBz3ds`D0&Hy&T$noQAAYWCA<%OPAH0A3rOd>2$>inDsUVX_<}GLeN8|b z;~Hclh^W9ZRNyQjDEhhqX{<|-))Db4d=VA+iWaZvBLh+nS0Jq-q5>~q!EX?{W(-IP zU4XQPhzcA<184zh1n>{MxHEV!$!89P*5K)1r@iyiIEk@B>2c&Bz4atIt3Ot1cd_?G4 zVt_P(Bq3uXq5@B#0zc8@6@B7>G>4=hV<8R<3>?RVKO=N4H9(qB5|GA-cpEd)*4Flg zCadUE2c$XKhBQJHfOs2|r%5V$X8>t#HX$P;HX@*H$ViBd3}_RwZp3B)v;|ogVlx5S zfUJqwjDRvE?b+Fj7f-SNoqOf2s)!CYY|%kkeuT}DiK== zFbX7oLOVp~SN0NOPfyP-{1ayVrBdYuU4C4vBJmU2yzmLHK|<{6>Js0N?hc>0wcYUd zz^!#?yBd(aot>Tg!-FM6RN=w!Nfq0p_|&GPiE2LvR-|y_A=Z#bDA$4+jv|x|pI99T zACM4n(y#DIetTO0MfQ7pYx9wWxVEzR3bV*4Ni18wqh`W#uobF)NSvdp0&U zCWKE|LP8WL6bglx=*5>S(b;eK^};wJ7d7x!Onf=O{sc1_QCO49%gbL?7gHjN6Y(k~ zzMXm)_kb~M-$Xx6f$c>EOT*3mJ1Tz`k&POd&m6{!+YifJkYo`#%j?8^rm!uZs3Rz> zCpfNbT10U+Aiouh#n}-Bkk!5@5Gg&aQS^YjhyE?rU#ym- zDq^*P9LMl1AN`*v{$D5Kr!dcuDk7%62f@*Hb0jg%kv5_Xvl2(}A!^hNG1>HpCTgKE{{R30|NkE3yTAYd00v1!K~w_(;0yTB THvW9p00000NkvXXu0mjfWDGWV literal 0 HcmV?d00001 diff --git a/miniprogram/assets/home2.png b/miniprogram/assets/home2.png new file mode 100644 index 0000000000000000000000000000000000000000..8cf665546f602d4acc978e9610c73b15c58b99c4 GIT binary patch literal 1324 zcmV+{1=IS8P);13Xl5y1;0Os5?YK@dR%K|~Qm5qd-fQ4|pc5mXRG zyv%q(5JAyj;EO_=^n>8#H;7=TtZF@DnW}VmDkn+VQ$yEOE>$OWzOG4nCYb>IS78B< zSeOvNBYH#v0fG>ICVE5y0fG>2&%~+rVhGzaFdh9xkZWln+(itd76ic?aqVkC7vA?U zOJgV&*iFPRJ}lCj5k+|gEoel0l?~1;x`!A>hXD9dqY#7BFx8$k?yGU5TZoO<2ZY5j zQLr;I<{Vs2{Nz?*R^{GV^5Y zcIG}uAnQd8+q;4DGnq&daCXTi@nh~ZWPONXv`a8q1D3x zVkgHSt3eE-t>Pkb1r4-14Qnfty%luQD)2savWdIo{-3!-UzKGx$2h{`@ zn{32|0EoZ^Aqr>3Ks5oOD} z3`1cvEv+fR*cieb5pZYDB5 z3Gy+#JjFEVVfx$lQ)A2Vn&Mb&qeHYf_^5R8hy?GXNA!pU0t6xKW+Lw%fh1Wuaz*B4 zfog|%Z{j&PR>;Ov8KT93M!AdKOdMqqi`+b-1zNg`M@)-Ytb0TYv~-s*00030|7+8P i(*OVf21!IgR09AH^5MbrN9+v%0000I7BtVEOUqs(SU$K2w#Z~(SU$K2w#Z~(SU$K2w#Z~ z(SU$K2=Pk1xVX4HKR+M99$-(2?KU{1@8lqOfG59+~gRAHe9ijmN zgAhqpB1$usPD>m&*6;U+271LInD1r&;`M_#K!brvAR>Qow~yP159n{L)#M9wSqMr6 z(L!5iVmL&DOJxAjKt;zxB!S3M3|vMP`;PZ*Hs&j7D0G=?NCI&>oen3H$yLQ3&DC!S zh}@5`k_PJ9;dPoQ9^x#mCC4u@1rFm@&%mfmjp5yB(sz8gPjFhRD*$!VKoI*AS|enCJP3<&nnr zI(wt!Du_lJvaI8QIuDT_C-@^ouWIaX>)Lc4Vq2iL<#CAH=m^gxfyj~xWz?pGDqgc9 z5Xwq7jM}QU*WJFlsTL*Eri8*czK)h$IM-&oq_&u8L?l^>8bMw3b%+L6%^@Bz#9*Td z_iaB7^om0uAOBMz*u_HtQ6K!p|8tmRCE~{S23EQOW@(5CwAN;`*)ufkyc5_&ZxV>D zkvfn>4$Jm|L&Rs-Gs5v9%j7E(pHI;eG1d=Vzo085u zUwwiy>I>`*tW?rjzppE~*dNIioh-)jfzXmp`o|~~CE|Pdyc~ZM8yo8rLyS3l-->`k zTyaqSc8Dr`E9awuxSGy>emg`1?her*8W1oD;VaQ08W1oD@fQF9|NkF3mvI0900v1! bK~w_(M-WoqGG%@AaNz{#Wh$)-`z!z|? z4~aWfZ7zB3W7XeiSC8%M!#dNnUr!)zp+kg&mvI+sw`wJz0MWrit!y{c?;~nn9cCic z<^J{KLCmr<;5NuU@v!^x+#GN`BMBZv4E+6M44j5OxQ!DZ$1>ydAu8I^(;%)CV&Z;O zWE{#Ut=1?JBT`NzhomY|(PsyVNS}$LY`Di5IQ}mVKj) zZR#7?=@2t`r@FDTym=GS%OKDBrMH*+bvynb@WTAl2WuMR{$g01pk5CtAr4pG3*Ub`@e0*{{$5f^zlO`wQI7hztF9sP~4 zZ~xCTZza8X5YzM)xUIvg8mXd1C)CGbZn!MExL-aZz_9PV8NyM1lCBJ-L^>@r38;>I& z9R39e{KTXy#9wrX_|qq&;}2fWJ@&1>rV*}ju&z%A(R5LYg?@44XRI^Y!@f8^))yt> z=;%eIE|jjZz7ZQ8Vq~zH3IYbP;K2Gch%9`?;GKb3l(U{sgDAk=AR0sg0s<~(^b21!IgR09Cy-38wPH6UUD00008eOG_*3))@oO$rqx_oL6LIW~|KpZ1(u0MVHAf>%A7+ z-lygz|IT}Vcdx&6|Kg2TtS|YeGd10ie0Xu90+&)FgQL?_jSdzj7S7N`3PKzLDj}Us z9tsWpN?;)LK^Nc`VLHn#3cg)gF*~ zFQ6`))Uk8RwfEoWJFGcfcW<`-kKdeg7l^SGZaolrfs23snYf1%cKS{(cLlyPx^( zU)A!(FI_o~MD=dc@lQ^&nmg}0ms{Dnw9WB`zc*M;^j^2Tv~5S2*N;vGA-;WBJ;pKB z-W*B~8Mt6xz1^}SM$caH*zCry_DbLO9SokkeS2K;JFhLl;T;##9++HOTD~y$ zT=Vi`m#eqU-_N@%u(wI`8K=_272I$Wnk;1a{Q0bB{jHSP9=7P<;pZz>haCR1y)mct zhT4L{SX+mcjG;=5ixu*iAEg-WJh$nMiMPp_dg=6V)mZ_nF0x%X7Av3|c+tl}VD`-& z?kpF3S6K!km=}33t`pw)U)lWduUSi(-Q+B<*5v%!^t^JO_`Tenir=dCp1(R-;M()p zjOm}xxL=jF6ZhX!UFQ6SYuOC-j+VuG9pI=8P{kh4Ivp%?m#Btxwj91MnG`4zxV`k` z=bH4qmzSm{a~!#E+I>^?-^PvE+e=p7TD^Ozqv`W+TcwrGZU4J-?!*)NKmI=4`l>A> zo~Qi{ZV0yZK8JSn>eF0 z^}RRF@m{xS3p&mDuh@@w!twPART^8L$nYEyo6m0r^u?Yglob4rnStT||9YM){lJXG d2FgLq46_)oUXVZdSR5$A;OXk;vd$@?2>=w0i30!t literal 0 HcmV?d00001 diff --git a/miniprogram/assets/scan2.png b/miniprogram/assets/scan2.png new file mode 100644 index 0000000000000000000000000000000000000000..50e54f6cc435840a8aa36340f00861fd95dc5d19 GIT binary patch literal 911 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 - + diff --git a/miniprogram/pages/components/popup-plugin/index.json b/miniprogram/pages/components/popup-plugin/index.json new file mode 100644 index 0000000..4d06ee0 --- /dev/null +++ b/miniprogram/pages/components/popup-plugin/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "t-popup": "tdesign-miniprogram/popup/popup" + } +} \ No newline at end of file diff --git a/miniprogram/pages/components/popup-plugin/index.ts b/miniprogram/pages/components/popup-plugin/index.ts new file mode 100644 index 0000000..d2236a8 --- /dev/null +++ b/miniprogram/pages/components/popup-plugin/index.ts @@ -0,0 +1,31 @@ +// pages/components/popup-plugin/index.ts +Component({ + /** + * 组件的属性列表 + */ + properties: { + visible: null, + placement: null, + title: null, + }, + + /** + * 组件的初始数据 + */ + data: {}, + + /** + * 组件的方法列表 + */ + methods: { + onVisibleChange(e: any) { + console.log(e.detail.visible); + this.setData({ + open: e.detail.visible, + }); + if (!e.detail.visible) { + this.triggerEvent("close"); + } + }, + }, +}); diff --git a/miniprogram/pages/components/popup-plugin/index.wxml b/miniprogram/pages/components/popup-plugin/index.wxml new file mode 100644 index 0000000..31c6d40 --- /dev/null +++ b/miniprogram/pages/components/popup-plugin/index.wxml @@ -0,0 +1,8 @@ + + + {{title}} + + + + + \ No newline at end of file diff --git a/miniprogram/pages/components/popup-plugin/index.wxss b/miniprogram/pages/components/popup-plugin/index.wxss new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/miniprogram/pages/components/popup-plugin/index.wxss @@ -0,0 +1 @@ + diff --git a/miniprogram/pages/processEntry/processEntry.js b/miniprogram/pages/processEntry/processEntry.js new file mode 100644 index 0000000..d61ad02 --- /dev/null +++ b/miniprogram/pages/processEntry/processEntry.js @@ -0,0 +1,432 @@ +import { loginStatus, post } from "@/utils/https"; +import { formatTime, getAuthInfo, getDataSet, isArray, toArray, toObject } from "@/utils/util"; +import { voiceRequest } from "@/utils/voiceUtil"; + +/** 拼接符号 */ +const ProcessCodeConcatSymbol = "&&"; +/** 撤回码标记 */ +const RecallCodeMarking = "-"; + +/** + * 解析流程码 + * @param {string} value + */ +const parseQrCode = (value) => { + value = `${value || ""}`; + const obj = { + /** 工序码 */ + code: value, + /** 提成自定义字段 */ + key: "", + /** - => 撤回码 */ + type: "", + }; + if (value.includes(ProcessCodeConcatSymbol)) { + obj.code = value.substring(0, value.indexOf(ProcessCodeConcatSymbol)); + obj.key = value.substring(value.indexOf(ProcessCodeConcatSymbol) + ProcessCodeConcatSymbol.length); + } + + if (obj.code.includes(RecallCodeMarking)) { + obj.type = RecallCodeMarking; + obj.code = obj.code.replace(RecallCodeMarking, ""); + } + + return obj; +}; + +Page({ + /** + * 页面的初始数据 + */ + data: { + action: "end", + processCodeMsg: "", + rel_order_no: "", + process_code: "", + logsList: [], + show: false, + orders: [], + isLogin: false, + isScanCode: false, + voice: true, + loading: true, + authInfo: {}, + hideTabKeys: [], + processItems: [], + backFlag: false, + selectedProcessCode: "", + result: "", + logType: "0", + /** 默认提成 */ + defaultBonus: true, + showDefaultBonus: false, + defaultBonusConfig: {}, + defaultBonusConfigKeys: [], + rel_order_no_temp: "", + }, + handleLogin(e) { + if (e.detail) { + this.setData({ isLogin: true, authInfo: getAuthInfo() }); + this.init(); + } else { + this.setData({ isLogin: false }); + } + }, + backChange(e) { + this.data.backFlag = e.detail; + this.setData({ backFlag: e.detail }); + wx.setStorageSync("processBackFlag", e.detail ? 1 : 0); + if (this.data.selectedProcessCode) { + const { code, key } = parseQrCode(this.data.selectedProcessCode); + this.data.selectedProcessCode = `${code}${e.detail ? RecallCodeMarking : ""}`; + if (key) { + this.data.selectedProcessCode += `${ProcessCodeConcatSymbol}${key}`; + } + } + this.getProcessName(); + }, + getProcessName() { + if (this.data.selectedProcessCode) { + const { code, type } = parseQrCode(this.data.selectedProcessCode); + for (const ell of this.data.processItems) { + if (ell.code == code) { + this.setData({ + processCodeMsg: `工序名称:${ell.name || ""}(${ell.code})`, + selectedProcessCode: this.data.selectedProcessCode, + process_code: this.data.selectedProcessCode, + action: type ? "back" : "end", + }); + break; + } + } + } + }, + processItemTap(e) { + this.data.selectedProcessCode = e.currentTarget.dataset.code + (this.data.backFlag ? "-" : ""); + wx.setStorageSync("selectedProcessCode", this.data.selectedProcessCode); + this.setData({ + selectedProcessCode: this.data.selectedProcessCode, + }); + this.getProcessName(); + }, + getExecProcess() { + post("Orders/getExecProcess1").then((res) => { + this.data.processItems = toArray(res.data); + if (this.data.processItems.length == 1) { + this.data.selectedProcessCode = this.data.processItems[0].code; + this.getProcessName(); + } else { + this.getProcessName(); + } + this.setData({ + processItems: this.data.processItems, + }); + }); + }, + init() { + const companyInfo = toObject(wx.getStorageSync("company_info")); + const code = wx.getStorageSync("selectedProcessCode") || ""; + this.data.selectedProcessCode = code; + this.data.process_code = code; + this.data.backFlag = wx.getStorageSync("processBackFlag") == 1; + const logType = wx.getStorageSync("processEntry_logType"); + + this.setData({ + hideTabKeys: companyInfo.staff_type == 3 ? ["2"] : [], + backFlag: this.data.backFlag, + selectedProcessCode: code, + process_code: code, + logType: logType || 0, + }); + this.getExecProcess(); + }, + voiceChange(event) { + this.setData({ + voice: event.detail, + }); + wx.setStorageSync("processEntryVoice", `${event.detail}`); + }, + getVoice(msg, cacheVoice) { + if (this.data.voice && msg) { + voiceRequest(msg, cacheVoice); + } + }, + onLogTypeChange(e) { + const data = getDataSet(e); + this.setData({ logType: data.key }); + wx.setStorageSync("processEntry_logType", data.key); + }, + scanCode() { + this.data.isScanCode = true; + wx.scanCode({ + onlyFromCamera: true, + scanType: ["qrCode"], + success: (res) => { + console.log(res); + const qrcode = res.result || ""; + if (qrcode) { + if (qrcode.startsWith("DD") || qrcode.startsWith("LC")) { + if (this.data.process_code) { + this.data.rel_order_no = qrcode; + this.setData({ + rel_order_no: qrcode, + }); + this.processEnter(); + } else { + wx.showToast({ + title: "请扫流程码", + icon: "none", + }); + } + } else { + const code = parseQrCode(qrcode); + this.setData({ + action: code.type == RecallCodeMarking ? "back" : "end", + rel_order_no: "", + }); + this.getProcess(qrcode); + } + } + this.setData({ + msg: JSON.stringify(res), + }); + }, + complete: () => { + this.data.isScanCode = false; + }, + }); + }, + getProcess(real_code) { + const code = parseQrCode(real_code); + post("CompanyProcess/processChildList", { + curr_page: 1, + page_count: 1, + real_code: code.code, + }) + .then((res) => { + const data = res.data; + if (Array.isArray(res.data) && data.length) { + this.setData({ + processCodeMsg: `工序名称:${data[0].name || ""}(${real_code})`, + process_code: real_code, + selectedProcessCode: real_code, + }); + this.getVoice(`${data[0].name}工序`, true); + wx.showToast({ + title: "请扫订单二维码", + icon: "none", + }); + } else { + this.addMsg("未找到 " + real_code + " 工序"); + wx.showToast({ + title: "未找到该工序", + icon: "error", + }); + this.getVoice(`未找到工序`, true); + } + }) + .catch((res) => { + this.addMsg("未找到 " + real_code + " 工序"); + wx.showToast({ + title: "未找到该工序", + icon: "error", + }); + }); + }, + processEnter() { + if (this.data.rel_order_no && this.data.process_code) { + this.data.rel_order_no_temp = this.data.rel_order_no; + this.setProcess(); + } + }, + LCProcessEnter(e) { + const item = this.data.orders[e.currentTarget.dataset.index]; + this.data.rel_order_no_temp = item.rel_order_no; + this.setProcess(); + }, + setProcess(other) { + const code = parseQrCode(this.data.process_code); + const obj = {}; + if (code.key) { + obj[this.data.rel_order_no_temp] = code.key; + } + post("Orders/setProcess", { + param: JSON.stringify({ + rel_order_no: this.data.rel_order_no_temp, + process_code: code.code, + action: this.data.action, + if_scan: 1, + same_process: this.data.rel_order_no_temp.startsWith("LC") ? 1 : undefined, + // defaultBonus: getDefaultBonus() != "0", + }), + other: JSON.stringify({ ...other, ...obj }), + }) + .then((res) => { + if (res.bonus == 1) { + const data = toObject(res.data); + this.setData({ + defaultBonusConfig: data, + defaultBonusConfigKeys: Object.keys(data), + showDefaultBonus: true, + }); + } else if (isArray(res.data) && res.data.length) { + res.data.forEach((el) => { + el.product_info_str = toArray(el.product_info) + .map((ell) => { + return `${ell.room_name || "未命名"}(${ell.goods_name || "未命名"})`; + }) + .join(","); + + el.sale_info_str = toArray(el.sale_info) + .map((ell) => { + return `${ell.goods_name}`; + }) + .join(","); + }); + + this.setData({ + show: true, + orders: res.data, + }); + } else { + this.addMsg(res.err_msg); + // this.getVoice(res.err_msg); + this.getVoice("通过"); + this.setData({ + show: false, + result: "success", + showDefaultBonus: false, + }); + wx.showToast({ + title: res.err_msg, + icon: "none", + }); + } + }) + .catch((res) => { + this.addMsg(res.err_msg); + if (res.err_code == "244269") { + this.setData({ + result: "success", + }); + wx.showToast({ + title: res.err_msg, + icon: "none", + }); + this.getVoice("通过"); + } else { + this.setData({ + result: "error", + }); + this.getVoice(res.err_msg); + } + }); + }, + onSelectBonus(e) { + const data = getDataSet(e); + this.setProcess({ [data.order_no]: data.key }); + }, + closeDefaultBonusHandle() { + this.setData({ + showDefaultBonus: false, + }); + }, + // defaultBonusChange(e) { + // this.setData({ + // defaultBonus: e.detail ? "1" : "0", + // }); + // setDefaultBonus(e.detail ? "1" : "0"); + // }, + addMsg(msg) { + const now = new Date(); + this.data.logsList.unshift({ + date: formatTime(now).substring(5), + msg: msg || "", + }); + if (this.data.logsList.length > 100) { + this.data.logsList.length = 100; + } + this.setData({ + logsList: this.data.logsList, + }); + }, + clearMsg() { + this.setData({ + logsList: [], + }); + }, + show() { + this.setData({ + show: true, + }); + }, + onClose() { + this.setData({ + show: false, + }); + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + this.setData({ + loading: true, + voice: wx.getStorageSync("processEntryVoice") == "false" ? false : true, + }); + loginStatus() + .then((res) => { + this.setData({ + isLogin: true, + loading: false, + authInfo: getAuthInfo(), + }); + this.init(); + }) + .catch((err) => { + this.setData({ isLogin: false, loading: false }); + console.log("调用登录状态请求失败", err); + }); + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() {}, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + wx.hideHomeButton(); + this.setData({ + // defaultBonus: getDefaultBonus() != "0", + }); + // if (!this.data.isScanCode) { + // } + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() {}, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() {}, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() {}, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() {}, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() {}, +}); diff --git a/miniprogram/pages/processEntry/processEntry.json b/miniprogram/pages/processEntry/processEntry.json new file mode 100644 index 0000000..692a93d --- /dev/null +++ b/miniprogram/pages/processEntry/processEntry.json @@ -0,0 +1,9 @@ +{ + "navigationBarTitleText": "录入流程", + "usingComponents": { + "t-input": "tdesign-miniprogram/input/input", + "t-checkbox": "tdesign-miniprogram/checkbox/checkbox", + "t-icon": "tdesign-miniprogram/icon/icon", + "popup-plugin": "/pages/components/popup-plugin/index" + } +} \ No newline at end of file diff --git a/miniprogram/pages/processEntry/processEntry.wxml b/miniprogram/pages/processEntry/processEntry.wxml new file mode 100644 index 0000000..93314f5 --- /dev/null +++ b/miniprogram/pages/processEntry/processEntry.wxml @@ -0,0 +1,111 @@ + + + + + 工序: + + 撤回 + + + + 暂无工序 + + + {{item.name}} + + + + + + + + + {{processCodeMsg}} + + + + 扫码 + 录入流程 + + + + + + + + 扫码结果 + + 图标 + 记录 + + + + + + + + + + + + {{item.date}} + {{item.msg}} + + + + + + + + + \ No newline at end of file diff --git a/miniprogram/pages/processEntry/processEntry.wxss b/miniprogram/pages/processEntry/processEntry.wxss new file mode 100644 index 0000000..bbe6fe5 --- /dev/null +++ b/miniprogram/pages/processEntry/processEntry.wxss @@ -0,0 +1,50 @@ +.log-header { + display: flex; + justify-content: space-between; + padding: 8px 12px; + border: 1rpx solid #ddd; + align-items: center; + margin-left: 12px; + margin-right: 12px; +} + +.log-box { + flex: 1; + min-height: 0; + overflow: auto; + padding: 12px 12px 12px 12px; + border: 1rpx solid #ddd; + margin-left: 12px; + margin-right: 12px; + /* margin-bottom: calc(constant(safe-area-inset-bottom) + 12px); */ + /*兼容 IOS<11.2*/ + /* margin-bottom: calc(env(safe-area-inset-bottom) + 12px); */ + margin-bottom: 12px; + border-top: none; + display: flex; + flex-direction: column; +} + +.container { + display: flex; + flex-direction: column; + height: calc(100vh - 50px); + /* height: calc(100vh - 50px - env(safe-area-inset-bottom)); */ +} + +.process-item { + height: 34px; + padding: 0 8px; + border: 1rpx solid #ddd; + border-radius: 4px; + display: flex; + align-items: center; + margin-right: 8px; + margin-bottom: 8px; +} + +.process-item.active { + background: #1989fa; + border-color: #1989fa; + color: #fff; +} diff --git a/miniprogram/utils/config.ts b/miniprogram/utils/config.ts index 6bd2baa..7eda7d8 100644 --- a/miniprogram/utils/config.ts +++ b/miniprogram/utils/config.ts @@ -8,7 +8,7 @@ export const defaultAvatarUrl = "https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0"; export const base = { - appletName: "易宝赞数据化管理系统", + appletName: "易宝赞管理系统普惠版", apiHost: wx.getAccountInfoSync().miniProgram.envVersion == "release" ? "https://ebaozan.com/api/" diff --git a/miniprogram/utils/voiceUtil.js b/miniprogram/utils/voiceUtil.js new file mode 100644 index 0000000..d2b395a --- /dev/null +++ b/miniprogram/utils/voiceUtil.js @@ -0,0 +1,75 @@ +import { post, urlAddBaseUrl } from "./https"; + +const playVoice = (src, text) => { + const innerAudioContext = wx.createInnerAudioContext({ + useWebAudioImplement: true, + }); + innerAudioContext.src = src; + innerAudioContext.play(); + innerAudioContext.onError(() => { + innerAudioContext.destroy(); + console.log("Audio Error"); + // wx.removeStorageSync(text); + }); + innerAudioContext.onEnded(() => { + innerAudioContext.destroy(); + console.log("Audio End"); + }); +}; + +export const voiceRequest = (text, cacheVoice) => { + // if (cacheVoice) { + // const data = wx.getStorageSync(text); + // console.log(data); + // if (data) { + // console.log("有 base64"); + // const fs = wx.getFileSystemManager(); + // //随机定义路径名称 + // var times = new Date().getTime(); + // var codeimg = wx.env.USER_DATA_PATH + "/" + times + ".mp3"; + // //将base64图片写入 + // fs.writeFile({ + // filePath: codeimg, + // data: data, + // encoding: "base64", + // success: (res) => { + // console.log(res); + // playVoice(codeimg, text); + // }, + // fail: (res) => { + // console.log(res); + // }, + // }); + // return; + // } + // } + post( + "/Tools/voice", + { + txt: text, + per: 3, + spd: 5, + pit: 5, + vol: 9, + }, + { showLoading: false } + ).then((res) => { + if (res.err_code == 0) { + playVoice(urlAddBaseUrl(res.data), text); + // if (cacheVoice) { + // wx.request({ + // url: urlAddBaseUrl(res.data), + // responseType: "arraybuffer", + // success(res) { + // const base64 = base64js.fromByteArray(new Uint8Array(res.data)); + // try { + // wx.setStorageSync(text, base64); + // } catch (_) { + // console.log("缓存错误"); + // } + // }, + // }); + // } + } + }); +};