diff --git a/.env.development b/.env.development
index 96e32fde..7bd45920 100644
--- a/.env.development
+++ b/.env.development
@@ -1,7 +1,7 @@
#VITE_BASE_URL=http://dev.ccwin-in.com:25300/api/admin-api
#VITE_BASE_URL_IMAGE=http://dev.ccwin-in.com:25300/api/admin-api
-VITE_BASE_URL=http://172.21.32.13:81/api/admin-api
VITE_BASE_URL_IMAGE=http://172.21.32.13:81/admin-api
+VITE_BASE_URL=http://172.22.32.9:81/api/admin-api
VITE_BASE_URL_IMAGE=http://172.21.32.13:81/admin-api
# 租户配置
VITE_TENANT='[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'
# 是否是测试环境
diff --git a/.env.production b/.env.production
index 1f71bb53..d98ea7b5 100644
--- a/.env.production
+++ b/.env.production
@@ -1,11 +1,11 @@
-VITE_BASE_URL=http://172.22.32.9:81/api/admin-api
-VITE_BASE_URL_IMAGE=http://172.22.32.9:81/admin-api
+VITE_BASE_URL=http://172.21.32.14:81/api/admin-api
+VITE_BASE_URL_IMAGE=http://172.21.32.14:81/admin-api
# 租户配置
-VITE_TENANT='[{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'
+VITE_TENANT='[{"text":"长春1379","value":1}]'
# 是否是测试环境
VITE_isDevelopment=false
# 积木报表请求路径
-VITE_JMREPORT_BASE_URL='http://172.22.32.9:90'
+VITE_JMREPORT_BASE_URL='http://172.21.32.14:90'
diff --git a/src/common/basic.js b/src/common/basic.js
index f0f4ab1f..c9793c7b 100644
--- a/src/common/basic.js
+++ b/src/common/basic.js
@@ -732,22 +732,21 @@ export function getPackingNumberAndBatch(managementList, itemCode, packingNumber
}
// //提示是否消息
-// export function showConfirmMsg(content, callback) {
-// uni.showModal({
-// title: '提示',
-// cancelText: '否',
-// confirmText: '是',
-// content: content,
-// success: function(res) {
-// if (res.confirm) {
-// callback(true);
-// } else {
-// callback(false);
-// }
-// },
-// })
-// scanErrorAudio();
-// }
+export function showConfirmMsg(content, callback) {
+ uni.showModal({
+ title: '提示',
+ cancelText: '否',
+ confirmText: '是',
+ content: content,
+ success: function(res) {
+ if (res.confirm) {
+ callback(true);
+ } else {
+ callback(false);
+ }
+ },
+ })
+}
export function compare(key) {
return function(a, b) {
diff --git a/src/main.js b/src/main.js
index 2e583bc0..5bd28748 100644
--- a/src/main.js
+++ b/src/main.js
@@ -4,7 +4,6 @@ import './router/my_router.js'; //引入拦截
import VueClipboard from 'vue-clipboard2' //复制粘贴
import uView from './uni_modules/vk-uview-ui';// 引入 uView UI
import comMessage from './mycomponents/common/comMessage.vue'
-import comLoading from './mycomponents/common/comLoading.vue'
// #ifndef VUE3
import Vue from 'vue'
@@ -34,7 +33,6 @@ export function createApp() {
app.use(VueClipboard)
app.use(uView)
app.component('comMessage', comMessage)
- app.component('comLoading', comLoading)
console.log("网络22请求")
// startApp(app);
diff --git a/src/manifest.json b/src/manifest.json
index 059947f9..50308035 100644
--- a/src/manifest.json
+++ b/src/manifest.json
@@ -2,8 +2,8 @@
"name" : "wms",
"appid" : "__UNI__C9CF4BF",
"description" : "",
- "versionName" : "1.0.13",
- "versionCode" : 13,
+ "versionName" : "1.0.23",
+ "versionCode" : 23,
"transformPx" : false,
/* 5+App特有相关 */
"app-plus" : {
diff --git a/src/mycomponents/scan/winComScanBalance.vue b/src/mycomponents/scan/winComScanBalance.vue
index 612dd048..9023f7f6 100644
--- a/src/mycomponents/scan/winComScanBalance.vue
+++ b/src/mycomponents/scan/winComScanBalance.vue
@@ -149,7 +149,11 @@
"未查找到库存余额"
this.showErrorMessage(hint)
} else if (res.data.length == 1) {
+
result.balance = res.data[0]
+ if(result.label.packingNumber!=result.balance.packingNumber){
+ result.balance.lableQty=result.label.qty
+ }
this.$emit("getBalance", result)
// this.closeScanPopup()
} else {
diff --git a/src/pages/fg/receiptByPlan.vue b/src/pages/fg/receiptByPlan.vue
index 02409e35..a1d60e90 100644
--- a/src/pages/fg/receiptByPlan.vue
+++ b/src/pages/fg/receiptByPlan.vue
@@ -1,7 +1,36 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/pages/repleinsh/record/directRepleinshRecord.vue b/src/pages/repleinsh/record/directRepleinshRecord.vue
index db7adf2c..ff3fc5ce 100644
--- a/src/pages/repleinsh/record/directRepleinshRecord.vue
+++ b/src/pages/repleinsh/record/directRepleinshRecord.vue
@@ -238,6 +238,9 @@
newDetail.packingNumber =pack.number
newDetail.packUnit =pack.packUnit;
newDetail.packQty=pack.packQty;
+ if(balance.lableQty){
+ newDetail.handleQty =balance.lableQty
+ }
itemp.subList.push(newDetail);
this.detailSource.push(itemp)
this.itemCode = balance.itemCode;
@@ -258,6 +261,9 @@
newDetail.packingNumber =pack.number
newDetail.packUnit =pack.packUnit;
newDetail.packQty=pack.packQty;
+ if(balance.lableQty){
+ newDetail.handleQty =balance.lableQty
+ }
item.subList.push(newDetail);
this.scanPopupGetFocus()
} else {
diff --git a/src/uni_modules/wz-select-popup/changelog.md b/src/uni_modules/wz-select-popup/changelog.md
new file mode 100644
index 00000000..8a5f41c0
--- /dev/null
+++ b/src/uni_modules/wz-select-popup/changelog.md
@@ -0,0 +1,8 @@
+## 1.0.11(2023-11-15)
+reqFun只允许传入Promise
+## 1.0.10(2023-11-13)
+去除默认值
+## 1.0.1(2023-11-13)
+更新插件依赖
+## 1.0.0(2023-11-13)
+第一次发布
diff --git a/src/uni_modules/wz-select-popup/components/wz-select-popup/util/defaultConfig.js b/src/uni_modules/wz-select-popup/components/wz-select-popup/util/defaultConfig.js
new file mode 100644
index 00000000..76b74eaf
--- /dev/null
+++ b/src/uni_modules/wz-select-popup/components/wz-select-popup/util/defaultConfig.js
@@ -0,0 +1,22 @@
+export default {
+ mode: 'radio', //radio checkbox 单选、多选
+ showType: 'text', //暂时不用 text image 纯文字、图文
+ selected: '', //已选中的
+ dataList: null, //如果dataList传入了数组则直接使用传入的数组渲染,无需再配置proxyConfig
+ proxyConfig: { //组件内部代理请求数据配置
+ reqFun: Promise.resolve(), //请求方法
+ localPaging: false //前端本地分页,如果使用的是dataList默认是本地分页
+ },
+ page: { //如果是组件内部代理请求会把page的值加入到请求参数里
+ pageIndex: 1, //当前页
+ pageSize: 20 //页大小
+ },
+ search: {
+ type: 'local', //搜索的类型,local本地搜索, remote向服务器请求。只有使用proxyConfig.reqFun请求才能配置为remote
+ },
+ fields: { //显示的key,value
+ label: 'name',
+ value: 'code',
+ image: 'image', //暂时不用
+ }
+}
\ No newline at end of file
diff --git a/src/uni_modules/wz-select-popup/components/wz-select-popup/util/index.js b/src/uni_modules/wz-select-popup/components/wz-select-popup/util/index.js
new file mode 100644
index 00000000..d10ab80c
--- /dev/null
+++ b/src/uni_modules/wz-select-popup/components/wz-select-popup/util/index.js
@@ -0,0 +1,74 @@
+/**深度合并对象*/
+export const deepMerge = function(target = {}, source = {}) {
+ target = deepClone(target); //深度克隆
+ if (typeof target !== 'object' || typeof source !== 'object') return false; //判断类型
+ for (let prop in source) {
+ if (!source.hasOwnProperty(prop)) continue; //检测属性是否为对象的自有属性
+ if (prop in target) { //prop 中是否有 target 属性
+ if (typeof target[prop] !== 'object') {
+ target[prop] = source[prop];
+ } else {
+ if (typeof source[prop] !== 'object') {
+ target[prop] = source[prop];
+ } else {
+ if (target[prop].concat && source[prop].concat) {
+ target[prop] = target[prop].concat(source[prop]); //合并
+ } else {
+ target[prop] = deepMerge(target[prop], source[prop]); //递归
+ }
+ }
+ }
+ } else {
+ target[prop] = source[prop];
+ }
+ }
+ return target;
+}
+
+const isArray = function(arr) {
+ return Object.prototype.toString.call(arr) === '[object Array]';
+}
+
+/**深度合并对象*/
+export const deepClone = function(obj) {
+ // 对常见的“非”值,直接返回原来值
+ if ([null, undefined, NaN, false].includes(obj)) return obj;
+ if (typeof obj !== "object" && typeof obj !== 'function') {
+ //原始类型直接返回
+ return obj;
+ }
+ let o = isArray(obj) ? [] : {};
+ for (let i in obj) {
+ if (obj.hasOwnProperty(i)) {
+ o[i] = typeof obj[i] === "object" ? deepClone(obj[i]) : obj[i];
+ }
+ }
+ return o;
+};
+
+let timeout = null
+/**
+ * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数
+ *
+ * @param {Function} func 要执行的回调函数
+ * @param {Number} wait 延时的时间
+ * @param {Boolean} immediate 是否立即执行
+ * @return null
+ */
+export const debounce = function(func, wait = 500, immediate = false) {
+ // 清除定时器
+ if (timeout !== null) clearTimeout(timeout)
+ // 立即执行,此类情况一般用不到
+ if (immediate) {
+ const callNow = !timeout
+ timeout = setTimeout(() => {
+ timeout = null
+ }, wait)
+ if (callNow) typeof func === 'function' && func()
+ } else {
+ // 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法
+ timeout = setTimeout(() => {
+ typeof func === 'function' && func()
+ }, wait)
+ }
+}
\ No newline at end of file
diff --git a/src/uni_modules/wz-select-popup/components/wz-select-popup/wz-list.vue b/src/uni_modules/wz-select-popup/components/wz-select-popup/wz-list.vue
new file mode 100644
index 00000000..fe1ae074
--- /dev/null
+++ b/src/uni_modules/wz-select-popup/components/wz-select-popup/wz-list.vue
@@ -0,0 +1,130 @@
+
+
+
+
+
+
+
+
+ ({{index+1}})
+
+ ERP料号 : {{item.itemCode}}
+ 名称 : {{item.itemName}}
+ 描述 : {{item.itemDesc1}}
+
+
+
+
+
+
+
+ {{loadmore[page.loading]}}
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/uni_modules/wz-select-popup/components/wz-select-popup/wz-search.vue b/src/uni_modules/wz-select-popup/components/wz-select-popup/wz-search.vue
new file mode 100644
index 00000000..6977a7fd
--- /dev/null
+++ b/src/uni_modules/wz-select-popup/components/wz-select-popup/wz-search.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/uni_modules/wz-select-popup/components/wz-select-popup/wz-select-popup.vue b/src/uni_modules/wz-select-popup/components/wz-select-popup/wz-select-popup.vue
new file mode 100644
index 00000000..7e3b04f9
--- /dev/null
+++ b/src/uni_modules/wz-select-popup/components/wz-select-popup/wz-select-popup.vue
@@ -0,0 +1,357 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/uni_modules/wz-select-popup/package.json b/src/uni_modules/wz-select-popup/package.json
new file mode 100644
index 00000000..3176f71f
--- /dev/null
+++ b/src/uni_modules/wz-select-popup/package.json
@@ -0,0 +1,82 @@
+{
+ "id": "wz-select-popup",
+ "displayName": "popup弹窗选择器",
+ "version": "1.0.11",
+ "description": "popup弹窗选择器支持单选,多选,组件内部代理请求,自定义label,value显示,分页加载,",
+ "keywords": [
+ "wz-select-popup"
+ ],
+ "repository": "",
+ "engines": {
+ "HBuilderX": "^3.96"
+ },
+ "dcloudext": {
+ "type": "component-vue",
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "插件不采集任何数据",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": ["uni-icons", "uni-popup"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "u"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "u",
+ "app-uvue": "n"
+ },
+ "H5-mobile": {
+ "Safari": "u",
+ "Android Browser": "u",
+ "微信浏览器(Android)": "y",
+ "QQ浏览器(Android)": "u"
+ },
+ "H5-pc": {
+ "Chrome": "y",
+ "IE": "u",
+ "Edge": "y",
+ "Firefox": "u",
+ "Safari": "u"
+ },
+ "小程序": {
+ "微信": "y",
+ "阿里": "u",
+ "百度": "u",
+ "字节跳动": "u",
+ "QQ": "u",
+ "钉钉": "u",
+ "快手": "u",
+ "飞书": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/uni_modules/wz-select-popup/readme.md b/src/uni_modules/wz-select-popup/readme.md
new file mode 100644
index 00000000..0b6e839e
--- /dev/null
+++ b/src/uni_modules/wz-select-popup/readme.md
@@ -0,0 +1,132 @@
+# wz-select-popup
+
+## 示例
+
+```vue
+
+
+
+ names:{{userForm.names}}
+ values:{{userForm.values}}
+ origin:{{userForm.origin}}
+
+
+
+
+
+
+
+
+
+```
+
+## 属性props
+
+| 属性 | 类型 | 默认值 | 说明 |
+| ------- | ------ | ------ | ------------------------------------------------------------ |
+| scrollH | String | 50vh | 滚动内容的高度,不包含搜索框和多选时的底部按钮栏。需要带单位 |
+
+
+## 方法methods
+
+| 方法名 | 说明 | 参数 |
+| ------ | -------- | ----------------------------- |
+| open | 打开弹窗 | [configs](#open方法的configs) |
+| close | 关闭弹窗 | |
+
+### open方法的configs
+
+| 参数名 | 说明 | 类型 | 默认值 |
+| ----------- | ------------------------------------------------------------ | ------------- | -------------------------- |
+| mode | 选择模式radio单选 ,checkbox多选 | String | radio |
+| selected | 已选中的value, 单选传字符串,多选传数组 | String\|Array | [] |
+| dataList | 传入了数组,则直接使用传入的数组渲染,无需再配置proxyConfig | Array | null |
+| proxyConfig | 组件内部代理请求数据配置 | Object | [proxyConfig](#proxyConfig的属性) |
+| search | 搜索配置 | Object | [search](#search的属性) |
+| page | 分页配置,如果是组件内部代理请求会把page的值加入到proxyConfig.reqFun请求参数里 | Object | [page](#page的属性) |
+| fields | 显示和取值的label,value | Object | [fields](#fields的属性) |
+
+#### proxyConfig的属性
+
+| 参数名 | 说明 | 类型 | 默认值 | 返回值 |
+| ----------- | --------------------------------------------------------- | ------- | ------------------- | --------------------------------------- |
+| reqFun | 向服务器请求数据的Promise方法,会返回页码以及搜索框的value | Promise | Promise.resolve([]) | ({pageIndex, pageSize,searchValue})=>{} |
+| localPaging | 是否本地分页 | Boolean | false | |
+
+#### search的属性
+
+| 参数名 | 说明 | 类型 | 默认值 |
+| ------ | ------------------------------------------------------------ | ------ | ------ |
+| type | 搜索的类型,local本地搜索, remote向服务器请求。只有使用proxyConfig.reqFun请求才能配置为remote | String | local |
+
+#### page的属性
+
+| 参数名 | 说明 | 类型 | 默认值 |
+| --------- | ------ | ------ | ------ |
+| pageIndex | 当前页 | Number | 1 |
+| pageSize | 页大小 | Number | 20 |
+
+#### fields的属性
+
+| 参数名 | 说明 | 类型 | 默认值 |
+| ------ | ------------ | ------ | ------ |
+| label | 显示的字段名 | String | name |
+| value | 取值的字段名 | String | code |
+
+## 事件enevt
+
+| 名称 | 触发时机 | 返回值 |
+| ------ | ------------------------------------------ | ------------------------------------------------------------ |
+| select | 单选点击列表时触发,多选点击确定按钮时触发 | mode等于radio时:(mode, {check,name,code})=>{}
mode等于checkbox时:(mode, {names,values,origin})=>{} |
+| close | popup关闭 | void |