diff --git a/.env.development b/.env.development index b93020e..986c321 100644 --- a/.env.development +++ b/.env.development @@ -22,4 +22,4 @@ VITE_REQUEST_HEADER_SITEID_KEY='site-id' VITE_REQUEST_HEADER_CHANNEL_KEY='channel' # 应用版本 -VITE_APP_VERSION='1.0.1' \ No newline at end of file +VITE_APP_VERSION='1.0.1' diff --git a/.env.production b/.env.production index 448bf61..6984900 100644 --- a/.env.production +++ b/.env.production @@ -1,13 +1,13 @@ NODE_ENV = 'production' # api请求地址 -VITE_APP_BASE_URL='' +VITE_APP_BASE_URL='https://ttts.runtong.vip/api/' # 图片服务器地址 -VITE_IMG_DOMAIN='' +VITE_IMG_DOMAIN='https://ttts.runtong.vip' # 站点id 仅在编译为小程序时生效 -VITE_SITE_ID = '' +VITE_SITE_ID = '100002' # 本地存储时token的参数名 VITE_REQUEST_STORAGE_TOKEN_KEY='wapToken' diff --git a/.gitignore b/.gitignore index 143057b..69c9a5b 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,3 @@ dist *.njsproj *.sln *.sw? -dist.zip \ No newline at end of file diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json index 81f13f4..b920e7d 100644 --- a/.hbuilderx/launch.json +++ b/.hbuilderx/launch.json @@ -1,16 +1,20 @@ -{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ - // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 - "version": "0.0", - "configurations": [{ - "default" : - { - "launchtype" : "local" - }, - "mp-weixin" : - { - "launchtype" : "local" - }, - "type" : "uniCloud" - } +{ + // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version" : "0.0", + "configurations" : [ + { + "default" : { + "launchtype" : "local" + }, + "mp-weixin" : { + "launchtype" : "local" + }, + "type" : "uniCloud" + }, + { + "openVueDevtools" : true, + "type" : "uni-app:h5" + } ] } diff --git a/package-lock.json b/package-lock.json index 57d1809..7fcee6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,6 @@ "@dcloudio/uni-mp-weixin": "3.0.0-3080720230703001", "@dcloudio/uni-quickapp-webview": "3.0.0-3080720230703001", "dayjs": "^1.11.13", - "hls.js": "^1.5.17", "html2canvas": "^1.4.1", "image-tools": "^1.4.0", "lodash-es": "^4.17.21", @@ -6757,12 +6756,6 @@ "he": "bin/he" } }, - "node_modules/hls.js": { - "version": "1.5.18", - "resolved": "https://registry.npmmirror.com/hls.js/-/hls.js-1.5.18.tgz", - "integrity": "sha512-znxR+2jecWluu/0KOBqUcvVyAB5tLff10vjMGrpAlz1eFY+ZhF1bY3r82V+Bk7WJdk03iTjtja9KFFz5BrqjSA==", - "license": "Apache-2.0" - }, "node_modules/html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", @@ -17597,11 +17590,6 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, - "hls.js": { - "version": "1.5.18", - "resolved": "https://registry.npmmirror.com/hls.js/-/hls.js-1.5.18.tgz", - "integrity": "sha512-znxR+2jecWluu/0KOBqUcvVyAB5tLff10vjMGrpAlz1eFY+ZhF1bY3r82V+Bk7WJdk03iTjtja9KFFz5BrqjSA==" - }, "html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmmirror.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", diff --git a/package.json b/package.json index 32a60a0..e1218fc 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,6 @@ "vue": "^3.3.0", "vue-i18n": "^9.2.2", "weixin-js-sdk": "^1.6.5", - "hls.js": "^1.5.17", "dayjs": "^1.11.13" }, "devDependencies": { diff --git a/src/App.vue b/src/App.vue index 3e9c188..f7290f2 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,6 +2,7 @@ import { onLaunch, onShow, onHide } from '@dcloudio/uni-app' import { launchInterceptor } from '@/utils/interceptor' import { getToken, isWeixinBrowser, getSiteId, currRoute, deepClone } from '@/utils/common' + import { checkAndRequestAuth} from '@/utils/auth'; import useMemberStore from '@/stores/member' import useConfigStore from '@/stores/config' import useSystemStore from '@/stores/system' @@ -186,11 +187,12 @@ // #endif } }) - }) onShow(() => { - + // #ifdef MP-WEIXIN + checkAndRequestAuth(); + // #endif }) onHide(() => { diff --git a/src/addon/components/diy/group/index.vue b/src/addon/components/diy/group/index.vue index c8482f1..a4b4c9d 100644 --- a/src/addon/components/diy/group/index.vue +++ b/src/addon/components/diy/group/index.vue @@ -52,66 +52,6 @@ - - - - - - - - - - - - - - - - - - - - @@ -124,26 +64,6 @@ - - \ No newline at end of file diff --git a/src/addon/d_store/locale/en.json b/src/addon/d_store/locale/en.json deleted file mode 100644 index 9e26dfe..0000000 --- a/src/addon/d_store/locale/en.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/addon/d_store/locale/zh-Hans.json b/src/addon/d_store/locale/zh-Hans.json deleted file mode 100644 index 9e26dfe..0000000 --- a/src/addon/d_store/locale/zh-Hans.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/addon/d_store/locale/zh-Hans/pages.hello_world.index.json b/src/addon/d_store/locale/zh-Hans/pages.hello_world.index.json deleted file mode 100644 index 311847d..0000000 --- a/src/addon/d_store/locale/zh-Hans/pages.hello_world.index.json +++ /dev/null @@ -1,2 +0,0 @@ -{} - diff --git a/src/addon/d_store/pages/detail.vue b/src/addon/d_store/pages/detail.vue deleted file mode 100644 index cbf59fc..0000000 --- a/src/addon/d_store/pages/detail.vue +++ /dev/null @@ -1,279 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/addon/d_store/pages/index.vue b/src/addon/d_store/pages/index.vue deleted file mode 100644 index bc0bc54..0000000 --- a/src/addon/d_store/pages/index.vue +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/addon/d_store/utils/styles/common.scss b/src/addon/d_store/utils/styles/common.scss deleted file mode 100644 index 7407ed8..0000000 --- a/src/addon/d_store/utils/styles/common.scss +++ /dev/null @@ -1,215 +0,0 @@ -page{ - background-color: #f5f6fa; - @apply pt-4; -} -:root, page { - --primary-color:#4277c7; - --primary-color-dark: #F26F3E; - --primary-color-disabled: #FFB397; - --primary-color-light: #FFEAE2; - --page-bg-color: #f7f7f7; - --price-text-color: #e1251b; -} -.remove-border{ - &::after{ - border: none; - } -} - .line-box { - background-color: #e1e1e1; - height: 2rpx; - width: 100%; - }L -//css共用样式文件 -.fl{ - display: flex; -} -.fb{ - display: flex; - justify-content: space-between; -} -.font-price{ - color: #19d444; - font-size: 38rpx; - font-weight: bold; -} -.tk-p{ - color: #19d444; - font-size: 18rpx; -} -.tk{ - background: linear-gradient(-90deg, #67c6d0 0%, #19d444 100%); - color: #ffffff; - padding: 0rpx 38rpx; - border-radius: 8rpx; - margin-right: 48rpx; - line-height:54rpx; -} -.tk-btgo{ - background: linear-gradient(-90deg, #67c6d0 0%, #19d444 100%); - color: #ffffff; - border-radius: 8rpx; - margin-right: 48rpx; - text-align: center; - line-height: 80rpx; -} -.tk-desc{ - color: #4b4b4b; - font-size: 24rpx; -} -.tktype-tag{ - padding: 4rpx 8rpx; - background: linear-gradient(-90deg, #2b2b00 0%, #353528 100%); - color: aliceblue; - border-radius: 8rpx; - font-size: 22rpx; -} -.tk-tag{ - padding: 4rpx 8rpx; - background: linear-gradient(-90deg, #4596ff 30%, #3363e7 100%); - color: #ffffff; - border-radius: 8rpx; - font-size: 22rpx; -} -.tk-dsale{ - font-size:24rpx; - color: #8f8f8f; -} -.tk-dtext{ - font-size:32rpx; - font-weight: bold; - // width: 640rpx; //设置宽度 - // // max-width:200px; //也可以设置最大宽度 - // overflow : hidden; // 溢出隐藏 - // display: -webkit-box; // 自适应布局 弹性伸缩盒子 - // -webkit-box-orient: vertical; //垂直排列子元素 伸缩盒子的子元素排列 - // -webkit-line-clamp: 1; //最多显示几行 多出部分。。。显示 - // text-overflow: ellipsis; // 显示省略号 -} -.tk-sltext{ - // max-width:200px; //也可以设置最大宽度 - overflow : hidden; // 溢出隐藏 - display: -webkit-box; // 自适应布局 弹性伸缩盒子 - -webkit-box-orient: vertical; //垂直排列子元素 伸缩盒子的子元素排列 - -webkit-line-clamp: 1; //最多显示几行 多出部分。。。显示 - text-overflow: ellipsis; // 显示省略号 -} -.tk-text{ - width: 420rpx; //设置宽度 - // max-width:200px; //也可以设置最大宽度 - overflow : hidden; // 溢出隐藏 - display: -webkit-box; // 自适应布局 弹性伸缩盒子 - -webkit-box-orient: vertical; //垂直排列子元素 伸缩盒子的子元素排列 - -webkit-line-clamp: 1; //最多显示几行 多出部分。。。显示 - text-overflow: ellipsis; // 显示省略号 -} -.tk-card{ - background-color: rgba(255, 255, 255, 0.9); - margin: 24rpx; - border-radius: 12rpx; - padding: 24rpx; - box-shadow: 0 1px 1px 0 rgba(234, 234, 234, 0.2), 0 2px 2px 0 rgba(231, 231, 231, 0.2); - } -.tk-bottom{ - position: fixed; - width: 100%; - bottom:0px; - z-index:9999; - padding: 0rpx 0rpx 24rpx 24rpx; - padding-bottom: 0; - padding-bottom: constant(safe-area-inset-bottom); - padding-bottom: env(safe-area-inset-bottom); - background-color: rgba(250, 250, 250, 0.96); - border-top-left-radius:24rpx; - border-top-right-radius:24rpx; -} -.tk-top{ - height: 110rpx; - background-color: rgba(250, 250, 250, 0.0); -} -.tk-yc{ - display: flex; - flex-direction: column; - align-items: center; -} -.tk-title{ - font-size: 32rpx; - font-weight: bold; - text-align: center; -} -.tk-b-bottom{ - padding-bottom: 18rpx; - border-bottom-style: solid; - border-bottom-width: 1rpx; - border-bottom-color: rgba(165, 165, 165, 0.2); -} -.tk-bbut{ - background: linear-gradient(-90deg, #4d84dc 0%, #3b46e8 100%); - text-align: center; - width: 680rpx; - border-radius: 12rpx; - color: #ffffff; - font-size: 32rpx; - padding: 16rpx; - margin-top: 8rpx; - margin-bottom: 8rpx; - margin-left: 12rpx; -} -.tk-column{ - display: flex;flex-direction: column;justify-content: space-between; -} -.tk-end{ - justify-content: flex-end; -} -.tk-orderbtn{ - padding: 4rpx 8rpx; - background: linear-gradient(-90deg, rgba(33, 120, 86, 0.6) 0%, rgba(27, 88, 53, 0.6) 100%); - color: aliceblue; - border-radius: 8rpx; - font-size: 22rpx; -} -.tagsmall { - background: linear-gradient(-90deg, rgba(33, 120, 86, 0.6) 0%, rgba(27, 88, 53, 0.6) 100%); - color: #ffffff; - padding: 4rpx 8rpx; - border-radius: 4rpx; - } - .tk-left{ - padding-left: 24rpx; - padding-top: 24rpx; - padding-right: 24rpx; - } - .font-weight{ - font-weight: bold; - } - .tk-bluecolor{ - color: #1723cb; - } - .tk-balackcolor{ - color: #878787; - } - .text-center{ - text-align: center; - } - .common-button { - background: linear-gradient(-90deg, #67c6d0 0%, #19d444 100%); - text-align: center; - border-radius: 24rpx; - color: #ffffff; - font-size: 28rpx; - padding: 16rpx; - margin: 24rpx; - margin-top: 48rpx; - } - .tk-butto { - background: linear-gradient(-90deg, #4d84dc 0%, #3b46e8 100%); - text-align: center; - width: 690rpx; - border-radius: 12rpx; - color: #ffffff; - font-size: 32rpx; - padding: 16rpx; - margin-top: 48rpx; - margin-bottom: 16rpx; - margin-left: 12rpx; - } diff --git a/src/addon/d_store/utils/theme.json b/src/addon/d_store/utils/theme.json deleted file mode 100644 index faa35c5..0000000 --- a/src/addon/d_store/utils/theme.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "--primary-color": "#FF4142", - "--primary-help-color": "#FB7939", - "--primary-color-dark": "#F26F3E", - "--primary-color-disabled": "#FFB397", - "--primary-color-light": "#FFF4F4", - "--page-bg-color": "#f7f7f7", - "--price-text-color": "#FF4142" -} diff --git a/src/addon/d_store/utils/ts/common.ts b/src/addon/d_store/utils/ts/common.ts deleted file mode 100644 index 8e40d44..0000000 --- a/src/addon/d_store/utils/ts/common.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { img, getToken } from '@/utils/common' - -import { getAddressByLatlng } from "@/app/api/system"; -import useSystemStore from "@/stores/system"; -const systemStore = useSystemStore(); -import { useLogin } from "@/hooks/useLogin"; -/** - * 获取定位信息 - */ -const getLocation = (param : any = {}) => { - uni.getLocation({ - type: param.type || 'gcj02', - success: res => { - const systemStore = useSystemStore() - systemStore.setLocation(res); - typeof param.success == 'function' && param.success(res); - }, - fail: res => { - typeof param.fail == 'function' && param.fail(res); - }, - complete: res => { - typeof param.complete == 'function' && param.complete(res); - } - }); -} - -export function authLogin() { - if (!getToken()) { - const login = useLogin(); - // 第三方平台自动登录 - // #ifdef MP - login.getAuthCode(); - // #endif - // #ifdef H5 - useLogin().setLoginBack({ url: '/addon/tk_cps/pages/diy' }) - // #endif - } - return true //自动进行登录 -} -export function dateChange(date) { - return new Date(date).getTime() // 将日期值转换为时间戳 -} -export function timeChange(timestamp) { - const date = new Date(timestamp * 1000); - const year = date.getFullYear(); - const month = date.getMonth() + 1; - const day = date.getDate(); - const hours = date.getHours(); - const minutes = date.getMinutes(); - const seconds = date.getSeconds(); - return `${hours}:${minutes}`; -} -export function timeChangeDay(timestamp) { - const date = new Date(timestamp * 1000); - const year = date.getFullYear(); - const month = date.getMonth() + 1; - const day = date.getDate(); - const hours = date.getHours(); - const minutes = date.getMinutes(); - const seconds = date.getSeconds(); - return `${day} ${hours}:${minutes}`; -} - -export function getLocationData() { - const data = uni.getStorageSync('location') - - if (data) { - return data - } - else { - getLocation() - let e = uni.getStorageSync('location') - let data = { - latlng: '' - }; - if (e.latitude && e.longitude) { - data.latlng = e.latitude + ',' + e.longitude - getAddressByLatlng(data).then((res : any) => { - if (res.data && Object.keys(res.data).length) { - uni.setStorageSync('addressByLatlng', res.data); - return e - } - }) - - } - } -} -export function telPhone(phone) { - uni.makePhoneCall({ - phoneNumber: phone - }) -} -export function openMap(lat, lng) { - uni.openLocation({ - latitude: parseFloat(lat), - longitude: parseFloat(lng), - success: function () { - console.log('success'); - } - }); -} - -export function imgListPreview(item, index) { - if (Array.isArray(item)) { - // 检查数组是否为空 - if (!item.length) return false; - - // 使用map方法代替forEach,这样可以返回一个新的数组 - const urlList = item.map(img); - - // 使用uni-app的previewImage方法预览图片 - uni.previewImage({ - indicator: "number", - current: index, // 确保index在item数组的范围内 - loop: true, - urls: urlList - }); - } else { - // 检查item是否为空字符串 - if (item === '') return false; - - // 创建包含单个图片URL的数组 - const urlList = [img(item)]; - - // 使用uni-app的previewImage方法预览单个图片 - uni.previewImage({ - indicator: "number", - loop: true, - urls: urlList - }); - } -} \ No newline at end of file diff --git a/src/addon/d_store/utils/ts/goto.ts b/src/addon/d_store/utils/ts/goto.ts deleted file mode 100644 index 82d92cd..0000000 --- a/src/addon/d_store/utils/ts/goto.ts +++ /dev/null @@ -1,11 +0,0 @@ -export async function goto(url : string) { - uni.navigateTo({ - url: url - }) -} -export async function gotourl(url : string) { - console.log('goto跳转网站测试') -} -export async function goback() { - uni.navigateBack() -} \ No newline at end of file diff --git a/src/addon/dailySignIn/api/signin.ts b/src/addon/dailySignIn/api/signin.ts deleted file mode 100644 index 106fd10..0000000 --- a/src/addon/dailySignIn/api/signin.ts +++ /dev/null @@ -1,22 +0,0 @@ -import request from '@/utils/request' - -// 签到是否开启 -export function getSignState() { - return request.get(`dailysignin/isSignInOpen`) -} -//获取签到规则 -export function getSignInAwardRules() { - return request.get(`dailysignin/rewardRules`) -} -//获取累加之和 -export function getAccumulationSum(data : AnyObject) { - return request.get(`dailysignin/sum`,data) -} -//是否已签到 -export function checkSignInStatusApi(){ - return request.get(`/dailysignin/checkSignInStatus`) -} -//签到 -export function signinApi() { - return request.post(`dailysignin/signIn`) -} \ No newline at end of file diff --git a/src/addon/dailySignIn/locale/en.json b/src/addon/dailySignIn/locale/en.json deleted file mode 100644 index 9e26dfe..0000000 --- a/src/addon/dailySignIn/locale/en.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/addon/dailySignIn/locale/zh-Hans.json b/src/addon/dailySignIn/locale/zh-Hans.json deleted file mode 100644 index 9e26dfe..0000000 --- a/src/addon/dailySignIn/locale/zh-Hans.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/src/addon/dailySignIn/locale/zh-Hans/pages.hello_world.index.json b/src/addon/dailySignIn/locale/zh-Hans/pages.hello_world.index.json deleted file mode 100644 index 311847d..0000000 --- a/src/addon/dailySignIn/locale/zh-Hans/pages.hello_world.index.json +++ /dev/null @@ -1,2 +0,0 @@ -{} - diff --git a/src/addon/dailySignIn/pages/signIn/index.vue b/src/addon/dailySignIn/pages/signIn/index.vue deleted file mode 100644 index a7a4061..0000000 --- a/src/addon/dailySignIn/pages/signIn/index.vue +++ /dev/null @@ -1,854 +0,0 @@ - - - diff --git a/src/addon/dailySignIn/styles/common.scss b/src/addon/dailySignIn/styles/common.scss deleted file mode 100644 index 4cea501..0000000 --- a/src/addon/dailySignIn/styles/common.scss +++ /dev/null @@ -1,5 +0,0 @@ -.remove-border { - &::after { - border: none; - } -} \ No newline at end of file diff --git a/src/addon/dailySignIn/types/signIn.d.ts b/src/addon/dailySignIn/types/signIn.d.ts deleted file mode 100644 index adc213d..0000000 --- a/src/addon/dailySignIn/types/signIn.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -export type SingInData = { - showSignDays: Array - rule: rule[] - signState: number - rewardRuleDay: Array - cycle: number - reward: {} -} -/** 签到是否开启 */ -export type BannerItem = { - status: number -} -export type rule = { - day: number - growth: number - point:number -} \ No newline at end of file diff --git a/src/addon/dailySignIn/utils/theme.json b/src/addon/dailySignIn/utils/theme.json deleted file mode 100644 index faa35c5..0000000 --- a/src/addon/dailySignIn/utils/theme.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "--primary-color": "#FF4142", - "--primary-help-color": "#FB7939", - "--primary-color-dark": "#F26F3E", - "--primary-color-disabled": "#FFB397", - "--primary-color-light": "#FFF4F4", - "--page-bg-color": "#f7f7f7", - "--price-text-color": "#FF4142" -} diff --git a/src/addon/dailySignIn/utils/utils.ts b/src/addon/dailySignIn/utils/utils.ts deleted file mode 100644 index 5342980..0000000 --- a/src/addon/dailySignIn/utils/utils.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function inArray(elem: any, arr: string | any[] | null) { - return arr == null ? -1 : arr.indexOf(elem); -} diff --git a/src/addon/erp/api/base.ts b/src/addon/erp/api/base.ts index 3575381..f58aea7 100644 --- a/src/addon/erp/api/base.ts +++ b/src/addon/erp/api/base.ts @@ -6,6 +6,9 @@ import request from '@/utils/request' export function getCustomerList(params : Record) { return request.get(`erp/base/customer`, params) } +export function getusersList(params : Record) { + return request.get(`erp/base/getusers`, params) +} // 食堂列表 export function getCustomerSelect(params : Record) { return request.get(`erp/base/customer/select`, params) diff --git a/src/addon/erp/api/purchase.ts b/src/addon/erp/api/purchase.ts index 1f3ece1..8c27832 100644 --- a/src/addon/erp/api/purchase.ts +++ b/src/addon/erp/api/purchase.ts @@ -137,6 +137,19 @@ export function deleteRetire(id : number) { export function getManualList(params: Record) { return request.get(`erp/inbound/manual`,params); } +/** + * 入库单上传照片 + * @param id 出库id + * @returns + */ +export function setManualImg(id: any,params: Record) { + return request.post(`erp/inbound/settu/${id}`,params, + { + showErrorMessage: true, + showSuccessMessage: true, + } + ); +} /** * 添加入库 * @param params diff --git a/src/addon/erp/api/sell.ts b/src/addon/erp/api/sell.ts index dccc5dc..33e4c44 100644 --- a/src/addon/erp/api/sell.ts +++ b/src/addon/erp/api/sell.ts @@ -191,6 +191,19 @@ export function takeOutOfStorage(id: any) { } ); } +/** + * 出库单上传照片 + * @param id 出库id + * @returns + */ +export function setManualImg(id: any,params: Record) { + return request.post(`erp/outbound/settu/${id}`,params, + { + showErrorMessage: true, + showSuccessMessage: true, + } + ); +} /** * 获取手工出库单列表 * @param params diff --git a/src/addon/erp/erp.zip b/src/addon/erp/erp.zip new file mode 100644 index 0000000..605bbe4 Binary files /dev/null and b/src/addon/erp/erp.zip differ diff --git a/src/addon/erp/locale/zh-Hans.json b/src/addon/erp/locale/zh-Hans.json index 6395623..834d784 100644 --- a/src/addon/erp/locale/zh-Hans.json +++ b/src/addon/erp/locale/zh-Hans.json @@ -1,31 +1,47 @@ { - "pages.index": "ERP首页", - "pages.member.index": "ERP个人中心", - "pages.base.customer.list": "客户管理666", - "pages.member.bind": "绑定账号", - "pages.statistics": "统计", - "pages.base.supplier.list": "供应商管理", - "pages.base.warehouse.list": "仓库管理", - "pages.product.type.list": "产品分类", - "pages.product.unit.list": "产品单位", - "pages.product.product.list": "产品列表", - "pages.purchase.order.list": "采购单列表", - "pages.purchase.order.add": "采购开单", - "pages.purchase.order.detail": "采购单详情", - "pages.purchase.storage.list": "入库单管理", - "pages.purchase.storage.detail": "入库单详情", - "pages.purchase.retire.list": "退货单管理", - "pages.purchase.retire.detail": "退货单详情", - "pages.sell.sell.list": "销售单管理", - "pages.sell.sell.add": "添加销售单", - "pages.sell.sell.detail": "销售单详情", - "pages.sell.delivery.list": "出库单管理", - "pages.sell.delivery.add": "添加出库单", - "pages.sell.delivery.detail": "出库单详情", - "pages.sell.sellreturn.list": "退货单管理", - "pages.sell.sellreturn.add": "添加退货单", - "pages.sell.sellreturn.detail": "退货单详情", - "pages.inventory.inventory.list": "盘点记录", - "pages.inventory.inventory.add": "库存盘点", - "pages.inventory.statement.list": "库存流水" + "erp.pages.index": "首页", + "erp.pages.member.bind": "绑定账号", + "erp.pages.member.index": "个人中心", + "erp.pages.statistics": "统计", + "erp.pages.base.customer.list": "食堂列表", + "erp.pages.base.customer.add": "添加食堂", + "erp.pages.base.customer.detail": "食堂详情", + "erp.pages.base.supplier.list": "供应商列表", + "erp.pages.base.supplier.add": "添加供应商", + "erp.pages.base.supplier.detail": "供应商详情", + "erp.pages.base.warehouse.list": "仓库列表", + "erp.pages.base.warehouse.add": "添加仓库", + "erp.pages.base.warehouse.detail": "仓库详情", + "erp.pages.product.type.list": "食材分类列表", + "erp.pages.product.type.add": "添加食材分类", + "erp.pages.product.type.detail": "食材分类详情", + "erp.pages.product.unit.list": "食材单位列表", + "erp.pages.product.unit.add": "添加食材单位", + "erp.pages.product.unit.detail": "食材单位详情", + "erp.pages.product.product.list": "食材列表", + "erp.pages.product.product.add": "添加食材", + "erp.pages.product.product.detail": "食材详情", + "erp.pages.inbound.order.list": "入库订单列表", + "erp.pages.inbound.order.add": "添加入库订单", + "erp.pages.inbound.order.detail": "入库订单详情", + "erp.pages.inbound.stockPending.list": "入库订单列表", + "erp.pages.inbound.stockPending.add": "添加入库订单", + "erp.pages.inbound.stockPending.detail": "入库订单详情", + "erp.pages.purchase.return.list": "采购退货列表", + "erp.pages.purchase.return.add": "添加采购退货", + "erp.pages.purchase.return.detail": "采购退货详情", + "erp.pages.outbound.order.list": "出库订单列表", + "erp.pages.outbound.order.add": "添加出库订单", + "erp.pages.outbound.order.detail": "出库订单详情", + "erp.pages.outbound.order.select": "选择", + "erp.pages.outbound.outPending.list": "出库订单列表", + "erp.pages.outbound.outPending.add": "添加出库订单", + "erp.pages.outbound.outPending.detail": "出库订单详情", + "erp.pages.canteen.return.list": "食堂退货列表", + "erp.pages.canteen.return.add": "添加食堂退货", + "erp.pages.canteen.return.detail": "食堂退货详情", + "erp.pages.inventory.inventory.list": "盘点管理", + "erp.pages.inventory.inventory.add": "添加盘点", + "erp.pages.inventory.statement.list": "库存流水列表", + "erp.pages.inventory.wprelationship.list": "库存查询列表" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.base.customer.add.json b/src/addon/erp/locale/zh-Hans/pages.base.customer.add.json index f12bc0b..9ad7cbc 100644 --- a/src/addon/erp/locale/zh-Hans/pages.base.customer.add.json +++ b/src/addon/erp/locale/zh-Hans/pages.base.customer.add.json @@ -1,18 +1,18 @@ { - "title": "客户管理22222", + "title": "食堂管理", - "code": "客户编号", - "codePlaceholder": "请输入客户编号", - "name": "客户名称", - "namePlaceholder": "请输入客户名称", - "level": "客户等级", - "levelPlaceholder": "请输入客户等级", + "code": "食堂编号", + "codePlaceholderNew": "请输入食堂编号", + "name": "食堂名称", + "namePlaceholder": "请输入食堂名称", + "level": "食堂等级", + "levelPlaceholder": "请输入食堂等级", "contact": "联系人", "contactPlaceholder": "请输入联系人", "phone": "手机号码", "phonePlaceholder": "请输入手机号码", - "telephone": "公司电话", - "telephonePlaceholder": "请输入公司电话", + "telephone": "负责人电话", + "telephonePlaceholder": "请输入负责人电话", "fax": "传真", "faxPlaceholder": "请输入传真", "salesmanId": "业务员", @@ -39,8 +39,8 @@ "firmidPlaceholder": "请输入企业编号", "status": "状态", "statusPlaceholder": "请输入状态", - "addCustomer": "添加客户信息", - "updateCustomer": "编辑客户信息", + "addCustomer": "添加食堂信息", + "updateCustomer": "编辑食堂信息", "customerDeleteTips": "确定要删除该数据吗?", "customerStatusTips": "确定要变更该数据吗?", "startDate": "请选择开始时间", diff --git a/src/addon/erp/locale/zh-Hans/pages.base.customer.detail.json b/src/addon/erp/locale/zh-Hans/pages.base.customer.detail.json index ad59e46..6d280c0 100644 --- a/src/addon/erp/locale/zh-Hans/pages.base.customer.detail.json +++ b/src/addon/erp/locale/zh-Hans/pages.base.customer.detail.json @@ -1,13 +1,13 @@ { - "title": "客户管理77777", + "title": "食堂管理", "info": "详情", "delete": "删除", - "code": "客户编号", - "name": "客户名称", - "level": "客户等级", + "code": "食堂编号", + "name": "食堂名称", + "level": "食堂等级", "contact": "联系人", "phone": "联系方式", - "telephone": "公司电话", + "telephone": "负责人电话", "fax": "传真", "salesmanId": "业务员", "city": "所属区域", diff --git a/src/addon/erp/locale/zh-Hans/pages.base.customer.list.json b/src/addon/erp/locale/zh-Hans/pages.base.customer.list.json index d43a71b..23bc30a 100644 --- a/src/addon/erp/locale/zh-Hans/pages.base.customer.list.json +++ b/src/addon/erp/locale/zh-Hans/pages.base.customer.list.json @@ -1,10 +1,10 @@ { - "title": "客户管理641233333", + "title": "食堂管理", "info": "详情", "delete": "删除", - "code": "客户编号", - "name": "客户名称", - "level": "客户等级", + "code": "食堂编号", + "name": "食堂名称", + "level": "食堂等级", "contact": "联系人", "phone": "联系方式", "telephone": "公司电话", @@ -20,8 +20,8 @@ "description": "说明", "firmid": "企业编号", "status": "状态", - "addCustomer": "添加客户信息", - "updateCustomer": "编辑客户信息", + "addCustomer": "添加食堂信息", + "updateCustomer": "编辑食堂信息", "Invalid ID": "无效ID", "customerDeleteTips": "确定要删除该数据吗?", "customerStatusTips": "确定要变更该数据吗?" diff --git a/src/addon/erp/locale/zh-Hans/pages.base.supplier.add.json b/src/addon/erp/locale/zh-Hans/pages.base.supplier.add.json index 22f4324..739846d 100644 --- a/src/addon/erp/locale/zh-Hans/pages.base.supplier.add.json +++ b/src/addon/erp/locale/zh-Hans/pages.base.supplier.add.json @@ -1,18 +1,18 @@ { "code": "供应商编码", - "codePlaceholder": "请输入供应商编码", + "codePlaceholderNew": "请输入供应商编码", "name": "供应商名称", "namePlaceholder": "请输入供应商名称", "contact": "联系人", "contactPlaceholder": "请输入联系人", - "phone": "联系方式", - "phonePlaceholder": "请输入联系方式", + "phone": "联系电话", + "phonePlaceholder": "请输入联系电话", "city": "区域", "cityPlaceholder": "请输入区域", "address": "详细地址", "addressPlaceholder": "请输入详细地址", - "mobile": "公司电话", - "mobilePlaceholder": "请输入公司电话", + "merchantMobile": "商家电话", + "merchantMobilePlaceholder": "请输入商家电话", "bank": "开户银行", "bankPlaceholder": "请输入开户银行", "banknums": "银行账号", @@ -31,5 +31,9 @@ "descriptionPlaceholder": "请输入说明", "addSupplier": "添加供应商", "updateSupplier": "编辑供应商", - "supplierDeleteTips": "确定要删除该数据吗?" + "supplierDeleteTips": "确定要删除该数据吗?", + "credentialImage": "供应商资质", + "credentialImagePlaceholder": "请上传供应商资质", + "productType": "供货类型", + "productTypePlaceholder": "请选择供货类型" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.base.supplier.detail.json b/src/addon/erp/locale/zh-Hans/pages.base.supplier.detail.json index 6a253ee..b5e5670 100644 --- a/src/addon/erp/locale/zh-Hans/pages.base.supplier.detail.json +++ b/src/addon/erp/locale/zh-Hans/pages.base.supplier.detail.json @@ -2,10 +2,10 @@ "code": "供应商编码", "name": "供应商名称", "contact": "联系人", - "phone": "联系方式", + "phone": "联系电话", "city": "区域", "address": "详细地址", - "mobile": "公司电话", + "merchantMobile": "商家电话", "bank": "开户银行", "banknums": "银行账号", "term": "账期(天)", @@ -14,5 +14,7 @@ "credit": "社会信用代码", "amount": "信用额度(元)", "salesmanId": "业务员", - "description": "说明" + "description": "说明", + "credentialImage": "供应商资质", + "productType": "供货类型" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.base.supplier.list.json b/src/addon/erp/locale/zh-Hans/pages.base.supplier.list.json index 6cd1eef..1396958 100644 --- a/src/addon/erp/locale/zh-Hans/pages.base.supplier.list.json +++ b/src/addon/erp/locale/zh-Hans/pages.base.supplier.list.json @@ -4,10 +4,10 @@ "code": "供应商编码", "name": "供应商名称", "contact": "联系人", - "phone": "联系方式", + "phone": "联系电话", "city": "区域", "address": "详细地址", - "mobile": "公司电话", + "merchantMobile": "商家电话", "bank": "开户银行", "banknums": "银行账号", "term": "账期(天)", @@ -18,5 +18,7 @@ "description": "说明", "addSupplier": "添加供应商", "updateSupplier": "编辑供应商", - "supplierDeleteTips": "确定要删除该数据吗?" + "supplierDeleteTips": "确定要删除该数据吗?", + "credentialImage": "供应商资质", + "productType": "供货类型" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.base.warehouse.add.json b/src/addon/erp/locale/zh-Hans/pages.base.warehouse.add.json index 01188cf..fd19597 100644 --- a/src/addon/erp/locale/zh-Hans/pages.base.warehouse.add.json +++ b/src/addon/erp/locale/zh-Hans/pages.base.warehouse.add.json @@ -7,8 +7,8 @@ "numberPlaceholder": "请输入仓库编号", "remark": "备注", "remarkPlaceholder": "请输入备注", - "linkman": "联系人", - "linkmanPlaceholder": "请输入联系人", + "linkman": "仓管员", + "linkmanPlaceholder": "请输入仓管员", "phone": "联系电话", "phonePlaceholder": "请输入联系电话", "postal": "邮政编码", diff --git a/src/addon/erp/locale/zh-Hans/pages.base.warehouse.detail.json b/src/addon/erp/locale/zh-Hans/pages.base.warehouse.detail.json index fd33f19..5c83aef 100644 --- a/src/addon/erp/locale/zh-Hans/pages.base.warehouse.detail.json +++ b/src/addon/erp/locale/zh-Hans/pages.base.warehouse.detail.json @@ -2,7 +2,7 @@ "name": "仓库名称", "number": "仓库编号", "remark": "备注", - "linkman": "联系人", + "linkman": "仓管员", "phone": "联系电话", "postal": "邮政编码", "inventory": "库存", diff --git a/src/addon/erp/locale/zh-Hans/pages.base.warehouse.list.json b/src/addon/erp/locale/zh-Hans/pages.base.warehouse.list.json index 4cbc982..cd72e18 100644 --- a/src/addon/erp/locale/zh-Hans/pages.base.warehouse.list.json +++ b/src/addon/erp/locale/zh-Hans/pages.base.warehouse.list.json @@ -2,7 +2,7 @@ "name": "仓库名称", "number": "仓库编号", "remark": "备注", - "linkman": "联系人", + "linkman": "仓管员", "phone": "联系电话", "postal": "邮政编码", "inventory": "库存", diff --git a/src/addon/erp/locale/zh-Hans/pages.purchase.order.add.json b/src/addon/erp/locale/zh-Hans/pages.inbound.order.add.json similarity index 71% rename from src/addon/erp/locale/zh-Hans/pages.purchase.order.add.json rename to src/addon/erp/locale/zh-Hans/pages.inbound.order.add.json index 4c9b514..9961b99 100644 --- a/src/addon/erp/locale/zh-Hans/pages.purchase.order.add.json +++ b/src/addon/erp/locale/zh-Hans/pages.inbound.order.add.json @@ -1,9 +1,9 @@ { "code": "单据编号", - "productCode": "产品编号", - "codePlaceholder": "请输入单据编号", + "productCode": "食材编号", + "codePlaceholderNew": "请输入单据编号", "supplierId": "供应商", - "supplierIdPlaceholder": "请输入供应商", + "supplierIdPlaceholder": "请选择供应商", "contact": "联系人", "contactPlaceholder": "请输入联系人", "phone": "联系电话", @@ -11,7 +11,7 @@ "deliveryTime": "交货日期", "deliveryTimePlaceholder": "请输入交货日期", "type": "交货方式", - "typePlaceholder": "请输入交货方式", + "typePlaceholder": "请选择交货方式", "purmanId": "采购审核人", "purmanIdPlaceholder": "请输入采购审核人", "warehouseId": "仓库", @@ -41,21 +41,26 @@ "storageStatus": "入库状态", "addOrder": "添加采购订单", "createTime": "创建时间", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", "choose": "选择", "purchaseQuantity": "采购数量", "purchasePrice": "采购价格(元)", "totalPrice": "小计(元)", "total": "合计(元)", - - "Enter product": "录入产品", + "batchNumber":"批次号", + "batchNumberPlaceholder": "请输入批次号", + "inboundImage":"图片", + "inboundImagePlaceholder": "请上传图片", + "inspectionReportImage":"检验图片", + "inspectionReportImagePlaceholder": "请上传检验图片", + "Enter product": "录入食材", "Add product": "新增", - "productCode": "产品编号", - "spec": "产品规格", + "productCode": "食材编号", + "spec": "食材规格", "purchasePrice": "采购单价", "purchaseQuantity": "采购数量" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.inbound.order.detail.json b/src/addon/erp/locale/zh-Hans/pages.inbound.order.detail.json new file mode 100644 index 0000000..dccfa71 --- /dev/null +++ b/src/addon/erp/locale/zh-Hans/pages.inbound.order.detail.json @@ -0,0 +1,41 @@ +{ + "code": "单据编号", + "productCode": "食材编号", + "supplierId": "供应商", + "contact": "联系人", + "phone": "联系电话", + "deliveryTime": "到货日期", + "type": "交货方式", + "purmanId": "采购审核人", + "warehouseId": "仓库", + "billingTime": "制单日期", + "waitNums": "待入库数", + "city": "所属区域", + "address": "详细地址", + "totalNums": "采购数量", + "storageNums": "已入库数", + "rate": "税率(%)", + "money": "税前金额", + "totalMoney": "应付金额", + "status": "审核状态", + "remark": "备注", + "reason": "失败原因", + "storageStatus": "入库状态", + "createTime": "创建时间", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", + "choose": "选择", + "purchaseQuantity": "采购数量", + "purchasePrice": "采购价格(元)", + "totalPrice": "小计(元)", + "total": "合计(元)", + "batchNumber":"批次号", + "inboundImage":"图片", + "inspectionReportImage":"检验图片", + + "spec": "食材规格", + "info": "详情", + "Product List": "食材列表" +} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.purchase.order.detail.json b/src/addon/erp/locale/zh-Hans/pages.inbound.order.list.json similarity index 78% rename from src/addon/erp/locale/zh-Hans/pages.purchase.order.detail.json rename to src/addon/erp/locale/zh-Hans/pages.inbound.order.list.json index ec28908..ef19434 100644 --- a/src/addon/erp/locale/zh-Hans/pages.purchase.order.detail.json +++ b/src/addon/erp/locale/zh-Hans/pages.inbound.order.list.json @@ -1,6 +1,6 @@ { "code": "单据编号", - "productCode": "产品编号", + "productCode": "食材编号", "supplierId": "供应商", "contact": "联系人", "phone": "联系电话", @@ -22,17 +22,16 @@ "reason": "失败原因", "storageStatus": "入库状态", "createTime": "创建时间", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", "choose": "选择", "purchaseQuantity": "采购数量", "purchasePrice": "采购价格(元)", "totalPrice": "小计(元)", "total": "合计(元)", - - "spec": "产品规格", "info": "详情", - "Product List": "产品列表" + "batchNumber":"批次号", + "detailGo":"详情" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.inbound.stockPending.add.json b/src/addon/erp/locale/zh-Hans/pages.inbound.stockPending.add.json new file mode 100644 index 0000000..9961b99 --- /dev/null +++ b/src/addon/erp/locale/zh-Hans/pages.inbound.stockPending.add.json @@ -0,0 +1,66 @@ +{ + "code": "单据编号", + "productCode": "食材编号", + "codePlaceholderNew": "请输入单据编号", + "supplierId": "供应商", + "supplierIdPlaceholder": "请选择供应商", + "contact": "联系人", + "contactPlaceholder": "请输入联系人", + "phone": "联系电话", + "phonePlaceholder": "请输入联系电话", + "deliveryTime": "交货日期", + "deliveryTimePlaceholder": "请输入交货日期", + "type": "交货方式", + "typePlaceholder": "请选择交货方式", + "purmanId": "采购审核人", + "purmanIdPlaceholder": "请输入采购审核人", + "warehouseId": "仓库", + "warehouseIdPlaceholder": "请选择仓库", + "billingTime": "制单日期", + "billingTimePlaceholder": "请输入制单日期", + "waitNums": "待入库数", + "waitNumsPlaceholder": "请输入待入库数", + "city": "所属区域", + "cityPlaceholder": "请输入所属区域", + "address": "详细地址", + "addressPlaceholder": "请输入详细地址", + "totalNums": "总数量", + "storageNums": "已入库数", + "totalNumsPlaceholder": "请输入总数量", + "rate": "税率(%)", + "ratePlaceholder": "请输入税率", + "money": "税前金额", + "moneyPlaceholder": "请输入税前金额", + "totalMoney": "应付金额", + "totalMoneyPlaceholder": "请输入应付金额", + "status": "审核状态", + "statusPlaceholder": "请输入", + "remark": "备注", + "remarkPlaceholder": "请输入备注", + "reason": "失败原因", + "storageStatus": "入库状态", + "addOrder": "添加采购订单", + "createTime": "创建时间", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", + "choose": "选择", + "purchaseQuantity": "采购数量", + "purchasePrice": "采购价格(元)", + "totalPrice": "小计(元)", + "total": "合计(元)", + "batchNumber":"批次号", + "batchNumberPlaceholder": "请输入批次号", + "inboundImage":"图片", + "inboundImagePlaceholder": "请上传图片", + "inspectionReportImage":"检验图片", + "inspectionReportImagePlaceholder": "请上传检验图片", + "Enter product": "录入食材", + "Add product": "新增", + + "productCode": "食材编号", + "spec": "食材规格", + "purchasePrice": "采购单价", + "purchaseQuantity": "采购数量" +} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.inbound.stockPending.detail.json b/src/addon/erp/locale/zh-Hans/pages.inbound.stockPending.detail.json new file mode 100644 index 0000000..dccfa71 --- /dev/null +++ b/src/addon/erp/locale/zh-Hans/pages.inbound.stockPending.detail.json @@ -0,0 +1,41 @@ +{ + "code": "单据编号", + "productCode": "食材编号", + "supplierId": "供应商", + "contact": "联系人", + "phone": "联系电话", + "deliveryTime": "到货日期", + "type": "交货方式", + "purmanId": "采购审核人", + "warehouseId": "仓库", + "billingTime": "制单日期", + "waitNums": "待入库数", + "city": "所属区域", + "address": "详细地址", + "totalNums": "采购数量", + "storageNums": "已入库数", + "rate": "税率(%)", + "money": "税前金额", + "totalMoney": "应付金额", + "status": "审核状态", + "remark": "备注", + "reason": "失败原因", + "storageStatus": "入库状态", + "createTime": "创建时间", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", + "choose": "选择", + "purchaseQuantity": "采购数量", + "purchasePrice": "采购价格(元)", + "totalPrice": "小计(元)", + "total": "合计(元)", + "batchNumber":"批次号", + "inboundImage":"图片", + "inspectionReportImage":"检验图片", + + "spec": "食材规格", + "info": "详情", + "Product List": "食材列表" +} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.purchase.order.list.json b/src/addon/erp/locale/zh-Hans/pages.inbound.stockPending.list.json similarity index 76% rename from src/addon/erp/locale/zh-Hans/pages.purchase.order.list.json rename to src/addon/erp/locale/zh-Hans/pages.inbound.stockPending.list.json index 90d55b0..ef19434 100644 --- a/src/addon/erp/locale/zh-Hans/pages.purchase.order.list.json +++ b/src/addon/erp/locale/zh-Hans/pages.inbound.stockPending.list.json @@ -1,6 +1,6 @@ { "code": "单据编号", - "productCode": "产品编号", + "productCode": "食材编号", "supplierId": "供应商", "contact": "联系人", "phone": "联系电话", @@ -22,14 +22,16 @@ "reason": "失败原因", "storageStatus": "入库状态", "createTime": "创建时间", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", "choose": "选择", "purchaseQuantity": "采购数量", "purchasePrice": "采购价格(元)", "totalPrice": "小计(元)", "total": "合计(元)", - "info": "详情" + "info": "详情", + "batchNumber":"批次号", + "detailGo":"详情" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.inventory.inventory.add.json b/src/addon/erp/locale/zh-Hans/pages.inventory.inventory.add.json index 1ab3f17..7b088aa 100644 --- a/src/addon/erp/locale/zh-Hans/pages.inventory.inventory.add.json +++ b/src/addon/erp/locale/zh-Hans/pages.inventory.inventory.add.json @@ -3,10 +3,10 @@ "warehouseName": "所在仓库", "warehouseNamePlaceholder": "请选择仓库", "productId": "商品ID", - "productName": "产品名称", - "productSpec": "产品规格", - "productUnit": "产品单位", - "productNamePlaceholder": "请选择产品", + "productName": "食材名称", + "productSpec": "食材规格", + "productUnit": "食材单位", + "productNamePlaceholder": "请选择食材", "surfaceNum": "账目数量", "surfaceNumPlaceholder": "请输入账目数量", "number": "盈亏数量", diff --git a/src/addon/erp/locale/zh-Hans/pages.inventory.inventory.list.json b/src/addon/erp/locale/zh-Hans/pages.inventory.inventory.list.json index 19c937e..03e3df9 100644 --- a/src/addon/erp/locale/zh-Hans/pages.inventory.inventory.list.json +++ b/src/addon/erp/locale/zh-Hans/pages.inventory.inventory.list.json @@ -2,9 +2,9 @@ "warehouseId": "仓库", "warehouseName": "所在仓库", "productId": "商品ID", - "productName": "产品名称", - "productSpec": "产品规格", - "productUnit": "产品单位", + "productName": "食材名称", + "productSpec": "食材规格", + "productUnit": "食材单位", "surfaceNum": "账目数量", "number": "盈亏数量", "realNum": "实际数量", diff --git a/src/addon/erp/locale/zh-Hans/pages.inventory.statement.list.json b/src/addon/erp/locale/zh-Hans/pages.inventory.statement.list.json index e6ac8d2..bf3837e 100644 --- a/src/addon/erp/locale/zh-Hans/pages.inventory.statement.list.json +++ b/src/addon/erp/locale/zh-Hans/pages.inventory.statement.list.json @@ -1,6 +1,6 @@ { "productId": "商品ID", - "productName": "产品名称", + "productName": "食材名称", "warehouseId": "仓库ID", "warehouseName": "所在仓库", "number": "流水数量", @@ -11,6 +11,6 @@ "startDate": "请选择开始时间", "endDate": "请选择结束时间", "updateTime": "更新时间", - "productUnit": "产品单位", - "productSpec": "产品规格" + "productUnit": "食材单位", + "productSpec": "食材规格" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.inventory.wprelationship.list.json b/src/addon/erp/locale/zh-Hans/pages.inventory.wprelationship.list.json index 6f36339..acda48f 100644 --- a/src/addon/erp/locale/zh-Hans/pages.inventory.wprelationship.list.json +++ b/src/addon/erp/locale/zh-Hans/pages.inventory.wprelationship.list.json @@ -1,10 +1,10 @@ { "warehouseId": "仓库id", "warehouseName": "所在仓库", - "productId": "产品id", - "productName": "产品名称", - "productUnit": "产品单位", - "productSpec": "产品规格", + "productId": "食材id", + "productName": "食材名称", + "productUnit": "食材单位", + "productSpec": "食材规格", "inventory": "可用库存", "freeze": "冻结库存", "updateTime": "更新时间" diff --git a/src/addon/erp/locale/zh-Hans/pages.sell.sell.add.json b/src/addon/erp/locale/zh-Hans/pages.outbound.order.add.json similarity index 66% rename from src/addon/erp/locale/zh-Hans/pages.sell.sell.add.json rename to src/addon/erp/locale/zh-Hans/pages.outbound.order.add.json index c426667..f11a95f 100644 --- a/src/addon/erp/locale/zh-Hans/pages.sell.sell.add.json +++ b/src/addon/erp/locale/zh-Hans/pages.outbound.order.add.json @@ -1,16 +1,22 @@ { "code": "单据编号", - "codePlaceholder": "请输入单据编号", - "customerId": "客户名称", - "customerIdPlaceholder": "请输入客户", + "codePlaceholderNew": "请输入单据编号", + "customerId": "食堂名称", + "customerIdPlaceholder": "请选择食堂", "contact": "联系人", "phone": "联系电话", - "deliveryTime": "交货时间", - "deliveryTimePlaceholder": "请输入交货时间", + "deliveryTime": "送货日期", + "deliveryTimePlaceholder": "请选择送货日期", "type": "交货方式", - "typePlaceholder": "交货方式", + "typePlaceholder": "请选择交货方式", + "batchNumber":"批次号", + "batchNumberPlaceholder": "请输入批次号", + "warehouseName": "仓库名称", + "warehousePlaceholder": "请选择仓库", + "outboundImage": "图片", + "outboundImagePlaceholder": "请上传图片", "purmanId": "销售审核人", "purmanIdPlaceholder": "请输入销售审核人", "billingTime": "制单日期", @@ -37,28 +43,23 @@ "sellDeleteTips": "确定要删除该数据吗?", "startDate": "请选择开始时间", "endDate": "请选择结束时间", - - "productCode": "产品编号", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", + "productCode": "食材编号", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", "choose": "选择", - "quantity": "数量", + "quantity": "出库数量", "inventory": "库存", "canUseInventory": "可用库存", - "warehouseName": "仓库名称", - "sellPrice": "销售单价(元)", + "sellPrice": "单价(元)", "totalPrice": "小计(元)", "total": "合计(元)", - "city": "所属区域", "address": "详细地址", - "delivery": "发货", "sellDelivery": "销售单", "sellQuantity": "出库数量", - - "Enter product": "录入产品", + "Enter product": "录入食材", "Add product": "新增" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.sell.sell.detail.json b/src/addon/erp/locale/zh-Hans/pages.outbound.order.detail.json similarity index 78% rename from src/addon/erp/locale/zh-Hans/pages.sell.sell.detail.json rename to src/addon/erp/locale/zh-Hans/pages.outbound.order.detail.json index 469b4d6..e0a2c9c 100644 --- a/src/addon/erp/locale/zh-Hans/pages.sell.sell.detail.json +++ b/src/addon/erp/locale/zh-Hans/pages.outbound.order.detail.json @@ -1,6 +1,6 @@ { "code": "单据编号", - "customerId": "客户名称", + "customerId": "食堂名称", "contact": "联系人", "phone": "联系电话", "deliveryTime": "交货时间", @@ -14,11 +14,11 @@ "status": "状态", "supplierName": "供应商名称", "remark": "备注", - "productCode": "产品编号", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", + "productCode": "食材编号", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", "choose": "选择", "quantity": "数量", "inventory": "库存", @@ -34,5 +34,5 @@ "delivery": "发货", "sellDelivery": "销售单", "sellQuantity": "出库数量", - "Product List": "产品列表" + "Product List": "食材列表" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.sell.sell.list.json b/src/addon/erp/locale/zh-Hans/pages.outbound.order.list.json similarity index 78% rename from src/addon/erp/locale/zh-Hans/pages.sell.sell.list.json rename to src/addon/erp/locale/zh-Hans/pages.outbound.order.list.json index 85d7053..f2e1118 100644 --- a/src/addon/erp/locale/zh-Hans/pages.sell.sell.list.json +++ b/src/addon/erp/locale/zh-Hans/pages.outbound.order.list.json @@ -1,6 +1,6 @@ { "code": "单据编号", - "customerId": "客户名称", + "customerId": "食堂名称", "contact": "联系人", "phone": "联系电话", "deliveryTime": "交货时间", @@ -14,11 +14,11 @@ "status": "状态", "supplierName": "供应商名称", "remark": "备注", - "productCode": "产品编号", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", + "productCode": "食材编号", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", "choose": "选择", "quantity": "数量", "inventory": "库存", @@ -34,6 +34,6 @@ "delivery": "发货", "sellDelivery": "销售单", "sellQuantity": "出库数量", - "Enter product": "录入产品", + "Enter product": "录入食材", "Add product": "新增" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.sell.sell.sell-select.json b/src/addon/erp/locale/zh-Hans/pages.outbound.order.sell-select.json similarity index 79% rename from src/addon/erp/locale/zh-Hans/pages.sell.sell.sell-select.json rename to src/addon/erp/locale/zh-Hans/pages.outbound.order.sell-select.json index 6e472a6..f3a5328 100644 --- a/src/addon/erp/locale/zh-Hans/pages.sell.sell.sell-select.json +++ b/src/addon/erp/locale/zh-Hans/pages.outbound.order.sell-select.json @@ -1,6 +1,6 @@ { "code": "单据编号", - "customerId": "客户名称", + "customerId": "食堂名称", "contact": "联系人", "phone": "联系电话", "deliveryTime": "交货时间", @@ -14,11 +14,11 @@ "status": "状态", "supplierName": "供应商名称", "remark": "备注", - "productCode": "产品编号", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", + "productCode": "食材编号", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", "choose": "选择", "quantity": "数量", "inventory": "库存", @@ -34,7 +34,7 @@ "delivery": "发货", "sellDelivery": "销售单", "sellQuantity": "出库数量", - "Enter product": "录入产品", + "Enter product": "录入食材", "Add product": "新增", "choose": "选择", "confirmChoose": "确认选择" diff --git a/src/addon/erp/locale/zh-Hans/pages.outbound.outPending.add.json b/src/addon/erp/locale/zh-Hans/pages.outbound.outPending.add.json new file mode 100644 index 0000000..f11a95f --- /dev/null +++ b/src/addon/erp/locale/zh-Hans/pages.outbound.outPending.add.json @@ -0,0 +1,65 @@ +{ + "code": "单据编号", + "codePlaceholderNew": "请输入单据编号", + "customerId": "食堂名称", + "customerIdPlaceholder": "请选择食堂", + + "contact": "联系人", + "phone": "联系电话", + + "deliveryTime": "送货日期", + "deliveryTimePlaceholder": "请选择送货日期", + "type": "交货方式", + "typePlaceholder": "请选择交货方式", + "batchNumber":"批次号", + "batchNumberPlaceholder": "请输入批次号", + "warehouseName": "仓库名称", + "warehousePlaceholder": "请选择仓库", + "outboundImage": "图片", + "outboundImagePlaceholder": "请上传图片", + "purmanId": "销售审核人", + "purmanIdPlaceholder": "请输入销售审核人", + "billingTime": "制单日期", + "billingTimePlaceholder": "请输入制单日期", + "totalNums": "总数量", + "totalNumsPlaceholder": "请输入总数量", + "rate": "税率(%)", + "ratePlaceholder": "请输入税率", + "theoryMoney": "税前金额", + "theoryMoneyPlaceholder": "请输入税前金额", + "realMoney": "应付金额", + "realMoneyPlaceholder": "请输入应付金额", + "status": "状态", + "statusPlaceholder": "请选择状态", + "supplierName": "供应商名称", + "remark": "备注", + "remarkPlaceholder": "请输入备注", + "createBy": "操作员", + "createByPlaceholder": "请输入操作员", + "addSell": "添加销售单", + "addDelivery": "添加发货单", + "updateSell": "编辑销售单", + "infoSell": "销售单详情", + "sellDeleteTips": "确定要删除该数据吗?", + "startDate": "请选择开始时间", + "endDate": "请选择结束时间", + "productCode": "食材编号", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", + "choose": "选择", + "quantity": "出库数量", + "inventory": "库存", + "canUseInventory": "可用库存", + "sellPrice": "单价(元)", + "totalPrice": "小计(元)", + "total": "合计(元)", + "city": "所属区域", + "address": "详细地址", + "delivery": "发货", + "sellDelivery": "销售单", + "sellQuantity": "出库数量", + "Enter product": "录入食材", + "Add product": "新增" +} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.outbound.outPending.detail.json b/src/addon/erp/locale/zh-Hans/pages.outbound.outPending.detail.json new file mode 100644 index 0000000..e0a2c9c --- /dev/null +++ b/src/addon/erp/locale/zh-Hans/pages.outbound.outPending.detail.json @@ -0,0 +1,38 @@ +{ + "code": "单据编号", + "customerId": "食堂名称", + "contact": "联系人", + "phone": "联系电话", + "deliveryTime": "交货时间", + "type": "交货方式", + "typePlaceholder": "交货方式", + "billingTime": "制单日期", + "totalNums": "总数量", + "rate": "税率(%)", + "theoryMoney": "税前金额", + "realMoney": "应付金额", + "status": "状态", + "supplierName": "供应商名称", + "remark": "备注", + "productCode": "食材编号", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", + "choose": "选择", + "quantity": "数量", + "inventory": "库存", + "canUseInventory": "可用库存", + "warehouseName": "仓库名称", + "sellPrice": "销售单价(元)", + "totalPrice": "小计(元)", + "total": "合计(元)", + "updateTime": "更新时间", + "city": "所属区域", + "address": "详细地址", + "completeOrder": "订单完成", + "delivery": "发货", + "sellDelivery": "销售单", + "sellQuantity": "出库数量", + "Product List": "食材列表" +} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.outbound.outPending.list.json b/src/addon/erp/locale/zh-Hans/pages.outbound.outPending.list.json new file mode 100644 index 0000000..f2e1118 --- /dev/null +++ b/src/addon/erp/locale/zh-Hans/pages.outbound.outPending.list.json @@ -0,0 +1,39 @@ +{ + "code": "单据编号", + "customerId": "食堂名称", + "contact": "联系人", + "phone": "联系电话", + "deliveryTime": "交货时间", + "type": "交货方式", + "typePlaceholder": "交货方式", + "billingTime": "制单日期", + "totalNums": "总数量", + "rate": "税率(%)", + "theoryMoney": "税前金额", + "realMoney": "应付金额", + "status": "状态", + "supplierName": "供应商名称", + "remark": "备注", + "productCode": "食材编号", + "productName": "食材名称", + "productTypeId": "食材分类", + "productSpec": "食材规格", + "productUnitId": "食材单位", + "choose": "选择", + "quantity": "数量", + "inventory": "库存", + "canUseInventory": "可用库存", + "warehouseName": "仓库名称", + "sellPrice": "销售单价(元)", + "totalPrice": "小计(元)", + "total": "合计(元)", + "updateTime": "更新时间", + "city": "所属区域", + "address": "详细地址", + "completeOrder": "订单完成", + "delivery": "发货", + "sellDelivery": "销售单", + "sellQuantity": "出库数量", + "Enter product": "录入食材", + "Add product": "新增" +} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.product.product.add.json b/src/addon/erp/locale/zh-Hans/pages.product.product.add.json index ff89e75..ddbc3d2 100644 --- a/src/addon/erp/locale/zh-Hans/pages.product.product.add.json +++ b/src/addon/erp/locale/zh-Hans/pages.product.product.add.json @@ -1,32 +1,36 @@ { - "code":"产品编号", - "codePlaceholder":"请输入产品编号", - "name":"产品名称", - "namePlaceholder":"请输入产品名称", - "productTypeId":"产品类型", - "productTypeIdPlaceholder":"请输入产品类型", - "spec":"规格", - "specPlaceholder":"请输入规格", - "inventory":"产品库存", - "inventoryPlaceholder":"请输入产品库存", - "minWarning":"最低库存预警", - "minWarningPlaceholder":"请输入最低库存预警", - "maxWarning":"最高库存预警", - "maxWarningPlaceholder":"请输入最高库存预警", - "raise":"加价费用", - "raisePlaceholder":"请输入加价费用", - "remark":"备注", - "remarkPlaceholder":"请输入备注", - "productUnitId":"单位", - "productUnitIdPlaceholder":"请输入单位", - "unit":"单位值", - "unitPlaceholder":"请输入单位值", - "image":"图片", - "imagePlaceholder":"请输入", - "addProduct":"添加产品信息", - "updateProduct":"编辑产品信息", - "productDeleteTips":"确定要删除该数据吗?", - "startDate":"请选择开始时间", - "endDate":"请选择结束时间", - "createTime":"创建时间" + "code": "食材编号", + "codePlaceholderNew": "请输入食材编号", + "name": "食材名称", + "namePlaceholder": "请输入食材名称", + "productTypeId": "食材类型", + "productTypeIdPlaceholder": "请输入食材类型", + "spec": "规格", + "specPlaceholder": "请输入规格", + "inventory": "食材库存", + "inventoryPlaceholder": "请输入食材库存", + "minWarning": "最低库存预警", + "minWarningPlaceholder": "请输入最低库存预警", + "maxWarning": "最高库存预警", + "maxWarningPlaceholder": "请输入最高库存预警", + "raise": "加价费用", + "raisePlaceholder": "请输入加价费用", + "remark": "备注", + "remarkPlaceholder": "请输入备注", + "productUnitId": "单位", + "productUnitIdPlaceholder": "请输入单位", + "unit": "单位值", + "unitPlaceholder": "请输入单位值", + "image": "图片", + "imagePlaceholder": "请上传图片", + "addProduct": "添加食材信息", + "updateProduct": "编辑食材信息", + "productDeleteTips": "确定要删除该数据吗?", + "startDate": "请选择开始时间", + "endDate": "请选择结束时间", + "createTime": "创建时间", + "expiryTerm": "保质期时长(天)", + "expiryTermPlaceholder": "请输入保质期时长", + "expiryAlertTerm": "临期报警时长(天)", + "expiryAlertTermPlaceholder": "请输入临期报警时长" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.product.product.detail.json b/src/addon/erp/locale/zh-Hans/pages.product.product.detail.json index 79280fb..306e6e7 100644 --- a/src/addon/erp/locale/zh-Hans/pages.product.product.detail.json +++ b/src/addon/erp/locale/zh-Hans/pages.product.product.detail.json @@ -1,9 +1,9 @@ { - "code": "产品编号", - "name": "产品名称", - "productTypeId": "产品类型", + "code": "食材编号", + "name": "食材名称", + "productTypeId": "食材类型", "spec": "规格", - "inventory": "产品库存", + "inventory": "食材库存", "minWarning": "最低库存预警", "maxWarning": "最高库存预警", "raise": "加价费用", @@ -13,5 +13,7 @@ "unitPlaceholder": "请输入单位值", "image": "图片", "productDeleteTips": "确定要删除该数据吗?", - "createTime": "创建时间" + "createTime": "创建时间", + "expiryTerm": "保质期时长(天)", + "expiryAlertTerm": "临期报警时长(天)" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.product.product.list.json b/src/addon/erp/locale/zh-Hans/pages.product.product.list.json index 099fdb7..2b64044 100644 --- a/src/addon/erp/locale/zh-Hans/pages.product.product.list.json +++ b/src/addon/erp/locale/zh-Hans/pages.product.product.list.json @@ -1,14 +1,14 @@ { - "code":"产品编号", - "codePlaceholder":"请输入产品编号", - "name":"产品名称", - "namePlaceholder":"请输入产品名称", - "productTypeId":"产品类型", - "productTypeIdPlaceholder":"请输入产品类型", - "spec":"产品规格", + "code":"食材编号", + "codePlaceholder":"请输入食材编号", + "name":"食材名称", + "namePlaceholder":"请输入食材名称", + "productTypeId":"食材类型", + "productTypeIdPlaceholder":"请输入食材类型", + "spec":"食材规格", "specPlaceholder":"请输入规格", - "inventory":"产品库存", - "inventoryPlaceholder":"请输入产品库存", + "inventory":"食材库存", + "inventoryPlaceholder":"请输入食材库存", "minWarning":"最低库存预警", "minWarningPlaceholder":"请输入最低库存预警", "maxWarning":"最高库存预警", @@ -17,18 +17,20 @@ "raisePlaceholder":"请输入加价费用", "remark":"备注", "remarkPlaceholder":"请输入备注", - "productUnitId":"产品单位", + "productUnitId":"食材单位", "productUnitIdPlaceholder":"请输入单位", "unit":"单位值", "unitPlaceholder":"请输入单位值", "image":"图片", "imagePlaceholder":"请输入", - "addProduct":"添加产品信息", - "updateProduct":"编辑产品信息", + "addProduct":"添加食材信息", + "updateProduct":"编辑食材信息", "productDeleteTips":"确定要删除该数据吗?", "startDate":"请选择开始时间", "endDate":"请选择结束时间", "createTime":"创建时间", "info": "详情", - "delete": "删除" + "delete": "删除", + "expiryTerm": "保质期时长(天)", + "expiryAlertTerm": "临期报警时长(天)" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.product.product.product-select.json b/src/addon/erp/locale/zh-Hans/pages.product.product.product-select.json index 1b8150a..6623a1d 100644 --- a/src/addon/erp/locale/zh-Hans/pages.product.product.product-select.json +++ b/src/addon/erp/locale/zh-Hans/pages.product.product.product-select.json @@ -1,17 +1,17 @@ { - "code":"产品编号", - "name":"产品名称", - "productTypeId":"产品类型", - "spec":"产品规格", - "inventory":"产品库存", + "code":"食材编号", + "name":"食材名称", + "productTypeId":"食材类型", + "spec":"食材规格", + "inventory":"食材库存", "minWarning":"最低库存预警", "maxWarning":"最高库存预警", "raise":"加价费用", "remark":"备注", - "productUnitId":"产品单位", + "productUnitId":"食材单位", "unit":"单位值", - "addProduct":"添加产品信息", - "updateProduct":"编辑产品信息", + "addProduct":"添加食材信息", + "updateProduct":"编辑食材信息", "createTime":"创建时间", "choose": "选择", "confirmChoose": "确认选择" diff --git a/src/addon/erp/locale/zh-Hans/pages.purchase.retire.add.json b/src/addon/erp/locale/zh-Hans/pages.purchase.return.add.json similarity index 55% rename from src/addon/erp/locale/zh-Hans/pages.purchase.retire.add.json rename to src/addon/erp/locale/zh-Hans/pages.purchase.return.add.json index 1bfb793..847947b 100644 --- a/src/addon/erp/locale/zh-Hans/pages.purchase.retire.add.json +++ b/src/addon/erp/locale/zh-Hans/pages.purchase.return.add.json @@ -1,17 +1,21 @@ { - "code": "编码", - "codePlaceholder": "请输入编码", + "code": "退货单号", + "codePlaceholderNew": "请输入退货单号", "supplierId": "供应商ID", "supplierName": "供应商", - "supplierIdPlaceholder": "请输入供应商ID", - "supplierNamePlaceholder": "请输入供应商", + "supplierIdPlaceholder": "请选择供应商", + "supplierNamePlaceholder": "请选择供应商", + "outboundImage": "图片", + "outboundImagePlaceholder": "请上传图片", "warehouseId": "仓库ID", "warehouseName": "仓库", - "warehouseIdPlaceholder": "请输入仓库ID", + "warehouseIdPlaceholder": "请选择仓库", "billingTime": "制单时间", "billingTimePlaceholder": "请输入制单时间", - "remark": "备注", - "remarkPlaceholder": "请输入备注", + "remark": "退货原因", + "remarkPlaceholder": "请输入退货原因", + "image": "图片", + "imagePlaceholder": "请上传图片", "reviewerId": "审核人", "reviewerIdPlaceholder": "请输入审核人", "money": "退款金额", @@ -23,11 +27,11 @@ "status": "状态", "addRetire": "添加", "infoRetire": "退货单详情", - "productCode": "产品编号", - "productSpec": "产品规格", - "productName": "产品名称", - "productUnitId": "产品单位", - "productTypeId": "产品分类", + "productCode": "食材编号", + "productSpec": "食材规格", + "productName": "食材名称", + "productUnitId": "食材单位", + "productTypeId": "食材分类", "choose": "选择", "retireQuantity": "退货数量", @@ -36,6 +40,6 @@ "total": "合计(元)", "updateTime": "更新时间", - "Enter product": "录入产品", + "Enter product": "录入食材", "Add product": "新增" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.purchase.retire.detail.json b/src/addon/erp/locale/zh-Hans/pages.purchase.return.detail.json similarity index 77% rename from src/addon/erp/locale/zh-Hans/pages.purchase.retire.detail.json rename to src/addon/erp/locale/zh-Hans/pages.purchase.return.detail.json index fa3acc2..982f3c0 100644 --- a/src/addon/erp/locale/zh-Hans/pages.purchase.retire.detail.json +++ b/src/addon/erp/locale/zh-Hans/pages.purchase.return.detail.json @@ -17,11 +17,11 @@ "status": "状态", "addRetire": "添加", "infoRetire": "退货单详情", - "productCode": "产品编号", - "productSpec": "产品规格", - "productName": "产品名称", - "productUnitId": "产品单位", - "productTypeId": "产品分类", + "productCode": "食材编号", + "productSpec": "食材规格", + "productName": "食材名称", + "productUnitId": "食材单位", + "productTypeId": "食材分类", "choose": "选择", "retireQuantity": "退货数量", @@ -30,5 +30,5 @@ "total": "合计(元)", "updateTime": "更新时间", - "Product List": "产品列表" + "Product List": "食材列表" } \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.purchase.retire.list.json b/src/addon/erp/locale/zh-Hans/pages.purchase.return.list.json similarity index 79% rename from src/addon/erp/locale/zh-Hans/pages.purchase.retire.list.json rename to src/addon/erp/locale/zh-Hans/pages.purchase.return.list.json index 1ff455b..23d20d7 100644 --- a/src/addon/erp/locale/zh-Hans/pages.purchase.retire.list.json +++ b/src/addon/erp/locale/zh-Hans/pages.purchase.return.list.json @@ -15,11 +15,11 @@ "status": "状态", "addRetire": "添加", "infoRetire": "退货单详情", - "productCode": "产品编号", - "productSpec": "产品规格", - "productName": "产品名称", - "productUnitId": "产品单位", - "productTypeId": "产品分类", + "productCode": "食材编号", + "productSpec": "食材规格", + "productName": "食材名称", + "productUnitId": "食材单位", + "productTypeId": "食材分类", "choose": "选择", "retireQuantity": "退货数量", diff --git a/src/addon/erp/locale/zh-Hans/pages.purchase.storage.detail.json b/src/addon/erp/locale/zh-Hans/pages.purchase.storage.detail.json deleted file mode 100644 index f13038c..0000000 --- a/src/addon/erp/locale/zh-Hans/pages.purchase.storage.detail.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "code": "单据编号", - "purchaseCode": "采购单号", - "supplierName": "供应商", - "contact": "联系人", - "phone": "联系方式", - "billingTime": "制单时间", - "deliveryTime": "交货日期", - "totalNum": "入库数量", - "rate": "税率", - "money": "总金额", - "partitionId": "库区", - "warehouseId": "仓库编号", - "theWay": "交货方式", - "city": "所属区域", - "address": "详细地址", - "stromanId": "入库人", - "status": "入库单状态", - "remark": "备注", - "addStorage": "添加入库", - "updateStorage": "编辑入库", - "infoStorage": "入库单详情", - "updateTime": "更新时间", - "createTime": "创建时间", - "productCode": "产品编号", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", - "purchaseQuantity": "入库数", - "purchasePrice": "单价(元)", - "totalPrice": "小计(元)", - "total": "合计(元)", - "Product List": "产品列表" -} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.purchase.storage.list.json b/src/addon/erp/locale/zh-Hans/pages.purchase.storage.list.json deleted file mode 100644 index 5e4a467..0000000 --- a/src/addon/erp/locale/zh-Hans/pages.purchase.storage.list.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "code": "单据编号", - "codePlaceholder": "请输入单据编号", - "purchaseCode": "采购单号", - "purchaseIdPlaceholder": "请输入采购单号", - "supplierName": "供应商", - "supplierIdPlaceholder": "请输入供应商编号", - "contact": "联系人", - "phone": "联系方式", - "adminId": "入库单录入人员", - "billingTime": "制单时间", - "deliveryTime": "交货日期", - "totalNum": "入库数量", - "rate": "税率", - "money": "总金额", - "partitionId": "库区", - "warehouseId": "仓库编号", - "theWay": "交货方式", - "city": "所属区域", - "address": "详细地址", - "stromanId": "入库人", - "status": "入库单状态", - "remark": "备注", - "createTime": "创建时间", - "updateTime": "更新时间", - "productCode": "产品编号", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", - "purchaseQuantity": "入库数", - "purchasePrice": "单价(元)", - "totalPrice": "小计(元)", - "total": "合计(元)" -} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.sell.delivery.add.json b/src/addon/erp/locale/zh-Hans/pages.sell.delivery.add.json deleted file mode 100644 index 93b2fdd..0000000 --- a/src/addon/erp/locale/zh-Hans/pages.sell.delivery.add.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "code": "单据编号", - "codePlaceholder": "请输入单据编号", - "sellCode": "销售单单号", - "sellCodePlaceholder": "请输入销售单单号", - "sellId": "销售单ID", - "sellIdPlaceholder": "请输入销售单ID", - "customerId": "客户ID", - "customerName": "客户名称", - "customerIdPlaceholder": "请输入客户ID", - "contact": "联系人", - "contactPlaceholder": "请输入联系人", - "phone": "联系方式", - "phonePlaceholder": "请输入联系方式", - "billingTime": "制单时间", - "billingTimePlaceholder": "请输入制单时间", - "deliveryTime": "交货日期", - "deliveryTimePlaceholder": "请输入交货日期", - "totalNum": "数量", - "totalNumPlaceholder": "请输入合计", - "type": "交货方式", - "typePlaceholder": "请输入交货方式", - "city": "所属区域", - "cityPlaceholder": "请输入所属区域", - "address": "详细地址", - "addressPlaceholder": "请输入详细地址", - "status": "状态", - "statusPlaceholder": "请输入状态", - "remark": "备注", - "remarkPlaceholder": "请输入备注", - "addDelivery": "添加出库单", - "updateDelivery": "编辑出库单", - "infoDelivery": "出库单详情", - "deliveryDeleteTips": "确定要删除该数据吗?", - "startDate": "请选择开始时间", - "endDate": "请选择结束时间", - - "productCode": "产品编号", - "productName": "产品名称", - "productList": "产品列表", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", - "choose": "选择", - "quantity": "数量", - "deliveryQuantity": "出库数量", - "inventory": "库存", - "canUseInventory": "可用库存", - "warehouseName": "仓库名称", - "warehousePlaceholder": "请选择仓库", - "sellPrice": "销售单价(元)", - "totalPrice": "小计(元)", - "total": "合计(元)", - - - "delivery": "发货", - "sellDelivery": "销售单", - "sellDeliveryPlaceholder": "请选择销售单", - "sellQuantity": "出库数量" -} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.sell.delivery.detail.json b/src/addon/erp/locale/zh-Hans/pages.sell.delivery.detail.json deleted file mode 100644 index 70cf32f..0000000 --- a/src/addon/erp/locale/zh-Hans/pages.sell.delivery.detail.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "code": "单据编号", - "sellCode": "销售单号", - "sellId": "销售单ID", - "customerId": "客户ID", - "customerName": "客户名称", - "contact": "联系人", - "phone": "联系方式", - "billingTime": "制单时间", - "deliveryTime": "交货日期", - "totalNum": "数量", - "address": "详细地址", - "status": "状态", - "remark": "备注", - "city": "所属区域", - "productCode": "产品编号", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", - "choose": "选择", - "quantity": "数量", - "deliveryQuantity": "出库数量", - "inventory": "库存", - "canUseInventory": "可用库存", - "warehouseName": "仓库名称", - "sellPrice": "销售单价(元)", - "totalPrice": "小计(元)", - "total": "合计(元)", - - "type": "交货方式", - "delivery": "发货", - "Product List": "产品列表" -} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.sell.delivery.list.json b/src/addon/erp/locale/zh-Hans/pages.sell.delivery.list.json deleted file mode 100644 index 4bf81a3..0000000 --- a/src/addon/erp/locale/zh-Hans/pages.sell.delivery.list.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "code": "单据编号", - "sellCode": "销售单号", - "sellId": "销售单ID", - "customerId": "客户ID", - "customerName": "客户名称", - "linkman": "联系人", - "phone": "联系方式", - "billingTime": "制单时间", - "deliveryTime": "交货日期", - "totalNum": "数量", - "address": "详细地址", - "status": "状态", - "remark": "备注", - "productCode": "产品编号", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", - "choose": "选择", - "quantity": "数量", - "deliveryQuantity": "出库数量", - "inventory": "库存", - "canUseInventory": "可用库存", - "warehouseName": "仓库名称", - "sellPrice": "销售单价(元)", - "totalPrice": "小计(元)", - "total": "合计(元)", - - "contact": "联系人", - - "delivery": "发货", - "sellDelivery": "销售单", - "sellQuantity": "出库数量" -} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.sell.sellreturn.add.json b/src/addon/erp/locale/zh-Hans/pages.sell.sellreturn.add.json deleted file mode 100644 index de64e68..0000000 --- a/src/addon/erp/locale/zh-Hans/pages.sell.sellreturn.add.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "code": "单据编号", - "codePlaceholder": "请输入单据编号", - "sellId": "销售单ID", - "sellIdPlaceholder": "请输入销售单ID", - "sellCode": "销售单单号", - "sellCodePlaceholder": "请输入销售单单号", - "customerId": "客户ID", - "customerName": "客户名称", - "customerIdPlaceholder": "请输入客户ID", - "status": "状态", - "statusPlaceholder": "请输入状态", - "addSellReturn": "添加退货单", - "updateSellReturn": "编辑退货单", - "sellReturnDeleteTips": "确定要删除该数据吗?", - "startDate": "请选择开始时间", - "endDate": "请选择结束时间", - "sellList": "销售单", - "contact": "联系人", - "contactPlaceholder": "请输入联系人", - "phone": "联系方式", - "phonePlaceholder": "请输入联系方式", - "billingTime": "制单时间", - "billingTimePlaceholder": "请输入制单时间", - "remark": "备注", - "remarkPlaceholder": "请输入备注", - "productCode": "产品编号", - "productList": "产品列表", - "warehouseName": "仓库名称", - "warehousePlaceholder": "请输入仓库名称", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", - "choose": "选择", - "quantity": "数量", - "returnQuantity": "退货数量", - "sellQuantity": "销售数量", - "sellPrice": "单价", - "totalPrice": "小计(元)", - "total": "合计(元)", - "sellDeliveryPlaceholder": "请选择销售单" -} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.sell.sellreturn.detail.json b/src/addon/erp/locale/zh-Hans/pages.sell.sellreturn.detail.json deleted file mode 100644 index 1a6ac74..0000000 --- a/src/addon/erp/locale/zh-Hans/pages.sell.sellreturn.detail.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "code": "单据编号", - "sellId": "销售单ID", - "sellCode": "销售单单号", - "customerId": "客户ID", - "customerName": "客户名称", - "status": "状态", - "contact": "联系人", - "phone": "联系方式", - "billingTime": "制单时间", - "address": "详细地址", - "remark": "备注", - "productCode": "产品编号", - "warehouseName": "仓库名称", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", - "choose": "选择", - "quantity": "数量", - "returnQuantity": "退货数量", - "sellQuantity": "销售数量", - "sellPrice": "单价", - "totalPrice": "小计(元)", - "total": "合计(元)", - "Product List": "产品列表" -} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.sell.sellreturn.list.json b/src/addon/erp/locale/zh-Hans/pages.sell.sellreturn.list.json deleted file mode 100644 index 1fb3c3d..0000000 --- a/src/addon/erp/locale/zh-Hans/pages.sell.sellreturn.list.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "code": "单据编号", - "sellId": "销售单ID", - "sellCode": "销售单单号", - "customerId": "客户ID", - "customerName": "客户名称", - "status": "状态", - "contact": "联系人", - "phone": "联系方式", - "billingTime": "制单时间", - "address": "详细地址", - "remark": "备注", - "productCode": "产品编号", - "warehouseName": "仓库名称", - "productName": "产品名称", - "productTypeId": "产品分类", - "productSpec": "产品规格", - "productUnitId": "产品单位", - "choose": "选择", - "quantity": "数量", - "returnQuantity": "退货数量", - "sellQuantity": "销售数量", - "sellPrice": "单价", - "totalPrice": "小计(元)", - "total": "合计(元)" -} \ No newline at end of file diff --git a/src/addon/erp/locale/zh-Hans/pages.statistics.json b/src/addon/erp/locale/zh-Hans/pages.statistics.json index 19eefc3..5ae2d35 100644 --- a/src/addon/erp/locale/zh-Hans/pages.statistics.json +++ b/src/addon/erp/locale/zh-Hans/pages.statistics.json @@ -1,20 +1,20 @@ { - "dataSummary": "数据汇总", + "dataSummary": "今日汇总", "updateTime": "更新时间", - "todayPurchaseCount": "今日采购订单数", + "todayPurchaseCount": "今日入库订单数", "purchaseCount": "采购订单总数", "yesterday": "昨日", - "todayPurchaseSale": "今日采购金额", + "todayPurchaseSale": "今日入库金额数", "purchaseTotal": "采购总额(元)", - "todaySellCount": "今日销售订单数", + "todaySellCount": "今日出库订单数", "sellCount": "销售订单总数", - "todaySellSale": "今日销售金额", + "todaySellSale": "今日出库金额数", "salesTotal": "销售总额(元)", "agentMatters": "代办事项", - "waitApprovePurchase": "待审核采购单", - "waitInventoryPurchase": "待入库订单", - "waitReturnPurchase": "待退货采购单", - "waitSellOrder": "待审核销售单", - "waitDeliveryOrder": "待出库销售单", - "waitReturnOrder": "待退货销售单" + "waitApprovePurchase": "采购待入库数", + "waitInventoryPurchase": "食堂待出库数", + "waitReturnPurchase": "采购退货待审核数", + "waitSellOrder": "食堂退货待审核数", + "waitDeliveryOrder": "采购退货待出库数", + "waitReturnOrder": "食堂退货待入库数" } \ No newline at end of file diff --git a/src/addon/erp/pages/base/customer/add.vue b/src/addon/erp/pages/base/customer/add.vue index 47deeff..d193c4e 100644 --- a/src/addon/erp/pages/base/customer/add.vue +++ b/src/addon/erp/pages/base/customer/add.vue @@ -3,41 +3,62 @@ - - + + + + + + + + + + + + + + + + + - + - + - + - - - {{ t('cityPlaceholder') }} - {{ formData.cityName }} - - + + + + + + + + - + - + @@ -56,10 +77,18 @@ - - \ No newline at end of file diff --git a/src/addon/erp/pages/purchase/order/add.vue b/src/addon/erp/pages/inbound/order/add.vue similarity index 55% rename from src/addon/erp/pages/purchase/order/add.vue rename to src/addon/erp/pages/inbound/order/add.vue index 6922039..cf8c11a 100644 --- a/src/addon/erp/pages/purchase/order/add.vue +++ b/src/addon/erp/pages/inbound/order/add.vue @@ -5,68 +5,88 @@ labelWidth="180rpx"> + + + + + - - - {{ t('supplierIdPlaceholder') }} - - {{ formData.supplier_name }} - + + + + + + - - - {{ t('warehouseIdPlaceholder') }} - - {{ formData.warehouse_name }} - + + + + + + - + + + + + + - - - - {{ t('deliveryTimePlaceholder') }} - - {{ formData.delivery_time }} - - + + - - - - {{ t('billingTimePlaceholder') }} - - {{ formData.billing_time }} - - + + - - + + + > + + + + + + + + + + @@ -119,18 +139,27 @@ + + + 有效期(天): + + + + + {{ t('purchaseQuantity') }}: - {{ t('totalPrice') }}:{{ item.purchase_quantity * item.purchase_price }} + class="ml-[20rpx] text-[var(--primary-color)]">{{ item.inbound_quantity * item.purchase_price }} @@ -139,23 +168,13 @@ - 暂未选择产品 + 暂未选择食材 - - - - - - - @@ -173,14 +192,19 @@ import { t } from '@/locale' import { onLoad, onReady } from '@dcloudio/uni-app'; import { getSupplierSelect, getWarehouseSelect } from '@/addon/erp/api/base'; - import { addOrder } from '@/addon/erp/api/purchase'; + import { addManual } from '@/addon/erp/api/purchase'; import { generatedCode } from '@/addon/erp/utils/common'; + import {uploadImage } from '@/app/api/system' import { redirect } from '@/utils/common'; import dayjs from 'dayjs' - + interface FileItem { + url: string; + status?: string; + message?: string; + } const formRef : any = ref(null) const loading = ref(false) - + const rules = reactive({ // 'supplier_id': { @@ -198,22 +222,36 @@ const formData = ref({ id: "", - code: generatedCode("CG"), + code: generatedCode("RK"), supplier_id: "", supplier_name: "", delivery_time: dayjs().format('YYYY-MM-DD'), - type: "", + type: "送货上门", warehouse_id: "", warehouse_name: "", billing_time: dayjs().format('YYYY-MM-DD'), remark: "", - rate: 16, product: [] as any[], - total_num: 0, - money: 0, - total_money: 0 + batch_number: generatedCode('BN'), + inbound_image:"", + inspection_report_image:"", + total_num:0, + total_amount:0, }) - + const typeList = ref([ + { + name: '送货上门' + }, + { + name: '到店自提' + }, + { + name: '邮寄配送' + } + ]) + const inbinboundImageFileList=ref([]) + const inspectionReportImageFileList=ref([]) + onReady(() => { formRef.value.setRules(rules); }) @@ -232,28 +270,93 @@ uniqueItems[item.code] = item; }); - res.forEach(item => { + res.forEach((item:any) => { if (!uniqueItems[item.code]) { uniqueItems[item.code] = item; } }); const uniqueArray = Object.values(uniqueItems); - formData.value.product = uniqueArray.map(item => { + formData.value.product = uniqueArray.map((item:any) => { item.purchase_price = 0; - item.purchase_quantity = 1; + item.inbound_quantity = 1; + item.expiry_term=item.expiry_term || 0 item.unit = item.productUnit?.name return item; }); - }) }) + + const afterRead = async (event: any) => { + // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式 + let lists:FileItem[] = [].concat(event.file) ; + let fileListLen = inbinboundImageFileList.value.length; + lists = lists.filter((item:FileItem) => item.url); + lists.map((item: any) => { + inbinboundImageFileList.value.push({ + url: item.url, + status: 'uploading', + message: '上传中', + }); + }) + for (let i = 0; i < lists.length; i++) { + const result = await uploadFilePromise(lists[i].url); + let item = inbinboundImageFileList.value[fileListLen]; + inbinboundImageFileList.value.splice(fileListLen, 1, { + ...item, + status: 'success', + message: '', + url: result as string, + }); + fileListLen++; + } + } + + const inspectionReportImageAfterRead = async (event: any) => { + // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式 + let lists:FileItem[] = [].concat(event.file) ; + let fileListLen = inspectionReportImageFileList.value.length; + lists = lists.filter((item:FileItem) => item.url); + lists.map((item: any) => { + inspectionReportImageFileList.value.push({ + url: item.url, + status: 'uploading', + message: '上传中', + }); + }) + for (let i = 0; i < lists.length; i++) { + const result = await uploadFilePromise(lists[i].url); + let item = inspectionReportImageFileList.value[fileListLen]; + inspectionReportImageFileList.value.splice(fileListLen, 1, { + ...item, + status: 'success', + message: '', + url: result as string, + }); + fileListLen++; + } + } + + const uploadFilePromise = (url: any) => { + return new Promise((resolve, reject) => { + let a = uploadImage({ + filePath:url, + name: 'file' + }).then((res:any)=>{ + setTimeout(() => { + resolve(res.data.url as string); + }, 1000); + }) + }); + } + const updateType = (e : any) => { + formData.value.type = e.name; + } /** * 供应商 */ - const supplierSheetShow = ref(false) const supplierList = ref([]); - const updateSex = (e : any) => { + const supplierIdChange = (e : any) => { formData.value.supplier_id = e.id; formData.value.supplier_name = e.name; if (formRef.value) { @@ -275,9 +378,8 @@ /** * 仓库 */ - const warehouseSheetShow = ref(false) const warehouseList = ref([]); - const updateSexWarehouse = (e : any) => { + const warehouseIdChange = (e : any) => { formData.value.warehouse_id = e.id; formData.value.warehouse_name = e.name; if (formRef.value) { @@ -296,7 +398,7 @@ }) } - // 跳转到产品选择页 + // 跳转到食材选择页 const goProductSelect = () => { if (!formData.value.warehouse_id) { uni.showToast({ icon: 'none', title: t('warehouseIdPlaceholder') }) @@ -338,23 +440,23 @@ const totalData = computed(() => { let data = { money: 0, - total_money: 0, nums: 0, }; for (let item of formData.value.product) { - let amount = Number(item.purchase_quantity) * Number(item.purchase_price); + let amount = Number(item.inbound_quantity) * Number(item.purchase_price); data.money += amount; - data.nums += Number(item.purchase_quantity); + data.nums += Number(item.inbound_quantity); } - // 税后金额 - data.total_money = data.money + data.money * (formData.value.rate / 100); return data; }); // 保存 const handSave = () => { if (loading.value) return - + if (!formData.value.code) { + uni.showToast({ icon: 'none', title: t('codePlaceholderNew') }) + return false; + } if (!formData.value.supplier_id) { uni.showToast({ icon: 'none', title: t('supplierIdPlaceholder') }) return false; @@ -363,17 +465,28 @@ uni.showToast({ icon: 'none', title: t('warehouseIdPlaceholder') }) return false; } + if (!formData.value.batch_number) { + uni.showToast({ icon: 'none', title: t('batchNumberPlaceholder') }) + return false; + } loading.value = true - formData.value.total_num = totalData.value.nums; - formData.value.money = totalData.value.money; - formData.value.total_money = totalData.value.total_money; - - addOrder(formData.value).then((res : any) => { + formData.value.total_amount = totalData.value.money; + formData.value.delivery_time = uni.$u.date(formData.value.delivery_time, 'yyyy-mm-dd'); + formData.value.billing_time = uni.$u.date(formData.value.billing_time, 'yyyy-mm-dd'); + if(inbinboundImageFileList.value.length > 0){ + const imgUrls=inbinboundImageFileList.value.map((item:any)=>item.url) + formData.value.inbound_image=imgUrls.join(',') + } + if(inspectionReportImageFileList.value.length > 0){ + const imgUrls=inspectionReportImageFileList.value.map((item:any)=>item.url) + formData.value.inspection_report_image=imgUrls.join(',') + } + addManual(formData.value).then((res : any) => { loading.value = false if (res.code == 1) { - redirect({ url: '/addon/erp/pages/purchase/order/list' }) + redirect({ url: '/addon/erp/pages/inbound/order/list' }) } }).catch((err) => { // 如果是4001,没有绑定企业账号,强制跳转绑定 diff --git a/src/addon/erp/pages/purchase/order/detail.vue b/src/addon/erp/pages/inbound/order/detail.vue similarity index 51% rename from src/addon/erp/pages/purchase/order/detail.vue rename to src/addon/erp/pages/inbound/order/detail.vue index e5a87c2..5db86d0 100644 --- a/src/addon/erp/pages/purchase/order/detail.vue +++ b/src/addon/erp/pages/inbound/order/detail.vue @@ -6,12 +6,8 @@ {{t('code')}}:{{formData.code}} - - - - + @@ -38,7 +34,19 @@ {{ t('totalNums') }}:{{formData.total_num}} - + + {{ t('deliveryTime') }}:{{formData.delivery_time}} + + + {{ t('warehouseId') }}:{{formData.warehouse.name}} + + + {{ t('remark') }}:{{formData.remark}} + + + + {{ '录入人' }}:{{formData.enter_name }} + + + {{ '入库人' }}:{{formData.store_name}} {{ t('createTime') }}: - - {{item.products?.name}} + {{item.product?.name}} {{ t('productCode') }}:{{item.products?.code}} + class="ml-[20rpx] text-[var(--primary-color)]">{{item.product?.code}} {{ t('spec') }}:{{item.products?.spec}} + class="ml-[20rpx] text-[var(--primary-color)]">{{item.product?.spec}} {{ t('productUnitId') }}: {{ t('purchaseQuantity') }}: - {{item.nums}} + {{item.num}} @@ -99,7 +114,7 @@ {{ t('totalPrice') }}:{{ item.nums * item.price }} + class="ml-[20rpx] text-[var(--primary-color)]">{{ item.num * item.price }} @@ -108,12 +123,45 @@ - 暂未选择产品 + 暂未选择食材 - + + + + {{ t('inboundImage') }} + + + + + + + + 暂未上传{{ t('inboundImage') }} + + + {{ t('inspectionReportImage') }} + + + + + + 暂未上传{{ t('inspectionReportImage') }} + + + - + + + + + + + @@ -121,8 +169,8 @@ import { ref, reactive, computed, onMounted } from 'vue' import { t } from '@/locale' import { onLoad } from '@dcloudio/uni-app'; - import { getOrderInfo } from '@/addon/erp/api/purchase'; - + import { getManualInfo,putInStorage } from '@/addon/erp/api/purchase'; + import { img } from '@/utils/common' const formRef : any = ref(null) const formData = reactive({ @@ -131,6 +179,7 @@ productType: { name: '' }, + id:'', spec: '', productUnit: { name: '' @@ -140,19 +189,64 @@ max_warning: '', remark: '', create_time: '', - productList: [] + delivery_time:'', + productList: [], + warehouse:{ + name:'' + }, + inbound_image:"", + inspection_report_image:"" + }) + const enteringWarehouseShow = ref(false); + const inboundImageArr=computed (()=>{ + if(formData.inbound_image){ + return formData.inbound_image.split(',') + } + return [] + }) + const inspectionReportImageArr=computed (()=>{ + if(formData.inspection_report_image){ + return formData.inspection_report_image.split(',') + } + return [] }) - // 加载 onLoad((data : any) => { getInfo(data.id); }) const getInfo = async (id : number) => { - const data = await (await getOrderInfo(id)).data; + const data = await (await getManualInfo(id)).data; Object.assign(formData, data); } + + // 立即入库 + const handleEnteringWarehouse= (item:any)=>{ + enteringWarehouseShow.value=true + } + + // 确认立即入库 + const enteringWarehouseConfirm = () => { + putInStorage(formData.id) + .then((res:any) => { + if(res.code ===1){ + getInfo(formData.id); + enteringWarehouseShow.value = false; + } + }).catch(() => { }); + } + const previewImageClick=(url:string)=>{ + uni.previewImage({ + current: 0, + urls:[url] + }) + } - \ No newline at end of file diff --git a/src/addon/erp/pages/purchase/order/list.vue b/src/addon/erp/pages/inbound/order/list.vue similarity index 62% rename from src/addon/erp/pages/purchase/order/list.vue rename to src/addon/erp/pages/inbound/order/list.vue index 4721256..5b7ae9e 100644 --- a/src/addon/erp/pages/purchase/order/list.vue +++ b/src/addon/erp/pages/inbound/order/list.vue @@ -1,24 +1,19 @@ @@ -76,16 +79,17 @@ import MescrollBody from '@/components/mescroll/mescroll-body/mescroll-body.vue'; import MescrollEmpty from '@/components/mescroll/mescroll-empty/mescroll-empty.vue'; import useMescroll from '@/components/mescroll/hooks/useMescroll.js'; - import { getOrderList, getOrderStatus } from '@/addon/erp/api/purchase'; + import { getManualList, getManualStatus,putInStorage} from '@/addon/erp/api/purchase'; import { onShow, onPageScroll, onReachBottom, onLoad } from '@dcloudio/uni-app'; const { downCallback, mescrollInit, getMescroll } = useMescroll(onPageScroll, onReachBottom); - - const show = ref(false); + const enteringWarehouseId=ref('') + const subsectionCurrent=ref(0) + const enteringWarehouseShow = ref(false); const statusList = ref([]); const searchParams = ref({ - status: undefined, + status: 3, }); // 获取系统状态栏的高度 @@ -97,25 +101,37 @@ onLoad(() => { - getStatusAllFn(); - }) - - // 获取状态 - const getStatusAllFn = () => { - getOrderStatus().then((res) => { - statusList.value = res.data; - statusList.value.unshift('全部') + // 获取状态 + getManualStatus().then((res:any) => { + statusList.value = Object.values(res.data); + subsectionCurrent.value=statusList.value.findIndex((item:any)=>item === '待入库') }); - }; - + }) + // 立即入库 + const handleEnteringWarehouse= (item:any)=>{ + enteringWarehouseShow.value=true + enteringWarehouseId.value=item.id + } + + // 确认立即入库 + const enteringWarehouseConfirm = () => { + if (enteringWarehouseId.value == '') { + uni.showToast({ icon: 'none', title: t("Invalid ID") }); + return false; + } + putInStorage(enteringWarehouseId.value) + .then((res:any) => { + if(res.code ===1){ + getMescroll().resetUpScroll(); + enteringWarehouseId.value = ''; + enteringWarehouseShow.value = false; + } + }).catch(() => { }); + } + // 分段器改变事件 const handleChange = (index : number) => { - // 由于多了一个全部,这里多个处理 - if (index === 0) { - searchParams.value.status = undefined - } else { - searchParams.value.status = index - 1; - } + searchParams.value.status = index===0?2:3; getMescroll().resetUpScroll(); } @@ -138,9 +154,9 @@ let data : Object = { page: mescroll.num, limit: mescroll.size, - status: searchParams.value.status + storage_status: searchParams.value.status }; - getOrderList(data).then((res : any) => { + getManualList(data).then((res : any) => { let newArr = res.data.data; mescroll.endSuccess(newArr.length); //设置列表数据 @@ -162,5 +178,10 @@ } - \ No newline at end of file diff --git a/src/addon/erp/pages/inbound/stockPending/add.vue b/src/addon/erp/pages/inbound/stockPending/add.vue new file mode 100644 index 0000000..fd58dfb --- /dev/null +++ b/src/addon/erp/pages/inbound/stockPending/add.vue @@ -0,0 +1,565 @@ + + + + + \ No newline at end of file diff --git a/src/addon/erp/pages/inbound/stockPending/detail.vue b/src/addon/erp/pages/inbound/stockPending/detail.vue new file mode 100644 index 0000000..e6f815d --- /dev/null +++ b/src/addon/erp/pages/inbound/stockPending/detail.vue @@ -0,0 +1,252 @@ + + + + + \ No newline at end of file diff --git a/src/addon/erp/pages/inbound/stockPending/list.vue b/src/addon/erp/pages/inbound/stockPending/list.vue new file mode 100644 index 0000000..40f1130 --- /dev/null +++ b/src/addon/erp/pages/inbound/stockPending/list.vue @@ -0,0 +1,436 @@ + + + + + \ No newline at end of file diff --git a/src/addon/erp/pages/index.vue b/src/addon/erp/pages/index.vue index 549850c..340b031 100644 --- a/src/addon/erp/pages/index.vue +++ b/src/addon/erp/pages/index.vue @@ -41,7 +41,7 @@ const diy = useDiy({ name: "DIY_ERP_INDEX" }) - + const diyGroupRef = ref(null) const wxPrivacyPopupRef:any = ref(null) diff --git a/src/addon/erp/pages/inventory/inventory/add.vue b/src/addon/erp/pages/inventory/inventory/add.vue index 850f4d7..de2897c 100644 --- a/src/addon/erp/pages/inventory/inventory/add.vue +++ b/src/addon/erp/pages/inventory/inventory/add.vue @@ -5,60 +5,90 @@ labelWidth="150rpx"> - - - - {{ t('warehouseNamePlaceholder') }} - - {{ formData.warehouse_name }} - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - {{ t('productName') }} - - {{ formData.product_name }} - + + + + + + + + + + + + + + + + - - + (其中因未完成出库单占用的冻结数量:{{ formData.freeze }}) + + + + + + + + + + - - - - - - - - - - + + - - - - - - ([]); + const batchNumberList = ref([]); const rules = reactive({ // 'supplier_id': { @@ -99,32 +139,41 @@ const formData = ref({ - id: "", - warehouse_id: "", - warehouse_name: "", - product_id: "", - product_name: "", - surface_num: "", - number: "", - real_num: "", - type: "", - + id: '', + code: generatedCode('PD'), + billing_time: dayjs().format('YYYY-MM-DD'), + check_time: dayjs().format('YYYY-MM-DD'), + operator_id:'', + warehouse_id: '', + inventory_id: '', + product_id: '', + surface_num: '', + freeze: '', + number: '', + real_num: '', + type: '' }) - + const check_time_new=ref(dayjs().format('YYYY-MM-DD')) onReady(() => { formRef.value.setRules(rules); }) - + const getOperator = async () => { + const res = await getMemberInfo(); + return res.data?.adminInfo?.uid || ''; + } // 页面加载 - onLoad((option : any) => { + onLoad(async (option : any) => { getTypeAllFn(); getWarehouseList(); + formData.value.operator_id = await getOperator(); }) - // 获取状态 const getTypeAllFn = () => { - getInventoryTypeList().then((res) => { - typeList.value = res.data; + getCheckTypeList().then((res) => { + const data= Object.values(res.data); + typeList.value =data.map((item:any)=>{ + return {name:item} + }) }); }; @@ -132,12 +181,15 @@ /** * 仓库 */ - const warehouseSheetShow = ref(false) const warehouseList = ref([]); const updateSexWarehouse = (e : any) => { formData.value.warehouse_id = e.id; - formData.value.warehouse_name = e.name; - getInventoryProduct({ + formData.value.inventory_id = '' + formData.value.product_id = '' + formData.value.surface_num = '' + formData.value.freeze = '' + batchNumberList.value = [] + getCheckProduct({ warehouse_id: e.id, }).then((res) => { productList.value = res.data; @@ -154,50 +206,62 @@ } }) } - - // 产品 - const productSheetShow = ref(false); + const checkTimeConfirm = (e : any) => { + formData.value.check_time = uni.$u.date(e.value, 'yyyy-mm-dd'); + checkTimeShow.value = false; + } + // 食材 const productList = ref([]); - const updateSexProduct = (e : any) => { - formData.value.product_id = e.id; - formData.value.product_name = e.name; + const productIdChange = (e : any) => { + formData.value.product_id = e.product_id; - handleProductIdChange(e.id); + handleProductIdChange(e.product_id); + } + // 批次号 + const inventoryIdChange = (e : any) => { + formData.value.inventory_id = e.inventory_id; + } + // 盘点结果 + const typeChange = (e : any) => { + formData.value.type = e.name; } - // 产品选择事件 + // 食材选择事件 const handleProductIdChange = (val : number) => { - const product = productList.value.find((item) => item.id === val); + const product = productList.value.find((item) => item.product_id === val); + batchNumberList.value = productList.value.filter((item) => item.product_id === val) if (product) { formData.value.surface_num = product.surface_num; + formData.value.freeze = product.freeze } }; // 保存 - const handSave = () => { + const handSave = async() => { + const hasPermission = await checkBtnPermission(memberStore.btnPermission,'erp_inventory_check_add') + if (!hasPermission) return if (loading.value) return - if (!formData.value.warehouse_id) { - uni.showToast({ icon: 'none', title: t('warehouseNamePlaceholder') }) + uni.showToast({ icon: 'none', title: '请选择仓库' }) return false; } if (!formData.value.product_id) { - uni.showToast({ icon: 'none', title: t('productNamePlaceholder') }) + uni.showToast({ icon: 'none', title: '请选择食材' }) return false; } if (!formData.value.number) { - uni.showToast({ icon: 'none', title: t('numberPlaceholder') }) + uni.showToast({ icon: 'none', title: '请输入操作数量' }) return false; } if (!formData.value.type) { - uni.showToast({ icon: 'none', title: t('typePlaceholder') }) + uni.showToast({ icon: 'none', title: '请选择盘点结果' }) return false; } loading.value = true - - addInventory(formData.value).then((res : any) => { + formData.value.check_time = uni.$u.date(formData.value.check_time, 'yyyy-mm-dd'); + addCheck(formData.value).then((res : any) => { loading.value = false if (res.code == 1) { redirect({ url: '/addon/erp/pages/inventory/inventory/list' }) diff --git a/src/addon/erp/pages/inventory/inventory/list.vue b/src/addon/erp/pages/inventory/inventory/list.vue index 2c6bcb6..6f8fd61 100644 --- a/src/addon/erp/pages/inventory/inventory/list.vue +++ b/src/addon/erp/pages/inventory/inventory/list.vue @@ -1,6 +1,6 @@ @@ -74,17 +107,108 @@ import MescrollBody from '@/components/mescroll/mescroll-body/mescroll-body.vue'; import MescrollEmpty from '@/components/mescroll/mescroll-empty/mescroll-empty.vue'; import useMescroll from '@/components/mescroll/hooks/useMescroll.js'; - import { getInventoryList } from '@/addon/erp/api/inventory'; + import { getCheckList,getCheckTypeList,updateCheckStatus,putInStorage} from '@/addon/erp/api/inventory'; import { onShow, onPageScroll, onReachBottom, onLoad } from '@dcloudio/uni-app'; + import { checkBtnPermission } from '@/utils/auth'; + import useMemberStore from '@/stores/member' const { downCallback, mescrollInit, getMescroll } = useMescroll(onPageScroll, onReachBottom); - - - const show = ref(false); + + const memberStore = useMemberStore() + + const auditOrderItem = ref(null); + const auditOrderShow = ref(false); + const notAuditOrderShow = ref(false); + const storageOrderShow = ref(false); + const refuseReason=ref("") + const statusList = ref([]); const searchParams = ref({ - status: undefined, + status: '增加', }); - + onLoad(() => { + // 获取状态 + getCheckTypeList().then((res:any) => { + statusList.value = Object.values(res.data); + }); + }) + // 操作 + const handleOperateOrder= async(item:any,type:string)=>{ + if (type === 'audit') { + const hasPermission = await checkBtnPermission(memberStore.btnPermission, 'erp_inventory_check_updateStatus') + if (!hasPermission) return + auditOrderShow.value = true + } else if (type === 'notAudit') { + const hasPermission = await checkBtnPermission(memberStore.btnPermission,'erp_inventory_check_updateStatus') + if (!hasPermission) return + notAuditOrderShow.value = true + } else if (type === 'storage') { + const hasPermission = await checkBtnPermission(memberStore.btnPermission, 'erp_inventory_check_putInStorage') + if (!hasPermission) return + storageOrderShow.value = true + } + refuseReason.value="" + auditOrderItem.value=item + } + // 确认审核 + const auditOrderConfirm = () => { + if (!auditOrderItem.value) { + uni.showToast({ + title: '数据不存在', + icon: 'none' + }); + return; + } + updateCheckStatus({ id: auditOrderItem.value.id,type: 'pass' }) + .then((res:any) => { + if(res.code ===1){ + getMescroll().resetUpScroll(); + auditOrderItem.value = null; + auditOrderShow.value = false; + } + }).catch(() => { }); + } + // 确认立即入库 + const storageOrderConfirm = () => { + if (!auditOrderItem.value) { + uni.showToast({ + title: '数据不存在', + icon: 'none' + }); + return; + } + putInStorage(auditOrderItem.value.id) + .then((res:any) => { + if(res.code ===1){ + getMescroll().resetUpScroll(); + auditOrderItem.value = null; + storageOrderShow.value = false; + } + }).catch(() => { }); + } + // 确认拒绝通过审核 + const notAuditOrderConfirm = () => { + if (!auditOrderItem.value) { + uni.showToast({ + title: '数据不存在', + icon: 'none' + }); + return; + } + updateCheckStatus({ id: auditOrderItem.value.id,type: 'reject',reject_reason:refuseReason.value }) + .then((res:any) => { + if(res.code ===1){ + getMescroll().resetUpScroll(); + auditOrderItem.value = null; + notAuditOrderShow.value = false; + } + }).catch(() => { }); + } + // 分段器改变事件 + const handleChange = (index : number) => { + searchParams.value.status = index===0?'增加':'减少'; + getMescroll().resetUpScroll(); + } + // 获取系统状态栏的高度 let menuButtonInfo : any = {}; // 如果是小程序,获取右上角胶囊的尺寸信息,避免导航栏右侧内容与胶囊重叠(支付宝小程序非本API,尚未兼容) @@ -111,9 +235,9 @@ let data : Object = { page: mescroll.num, limit: mescroll.size, - status: searchParams.value.status + type: searchParams.value.status }; - getInventoryList(data).then((res : any) => { + getCheckList(data).then((res : any) => { let newArr = res.data.data; mescroll.endSuccess(newArr.length); //设置列表数据 @@ -135,5 +259,5 @@ } - \ No newline at end of file diff --git a/src/addon/erp/pages/inventory/statement/list.vue b/src/addon/erp/pages/inventory/statement/list.vue index 81871b9..e02ffae 100644 --- a/src/addon/erp/pages/inventory/statement/list.vue +++ b/src/addon/erp/pages/inventory/statement/list.vue @@ -9,10 +9,9 @@ - {{item.products.name}} + {{item.product.name}} - @@ -20,11 +19,15 @@ {{ t('productSpec') }}:{{item.products?.spec}} + class="ml-[20rpx] text-[var(--primary-color)]">{{item.product?.spec}} {{ t('productUnit') }}:{{item.products?.productUnit?.name}} + class="ml-[20rpx] text-[var(--primary-color)]">{{item.product?.productUnit?.name}} + + + 批次号:{{item.batch_number}} {{ t('warehouseName') }}: - {{item.products.name}} + {{item.product.name}} {{ t('productSpec') }}:{{item.products?.spec}} + class="ml-[20rpx] text-[var(--primary-color)]">{{item.product?.spec}} {{ t('productUnit') }}:{{item.products?.productUnit?.name}} + class="ml-[20rpx] text-[var(--primary-color)]">{{item.product?.productUnit?.name}} + + + 批次号:{{item.batch_number}} + + + 到期时间:{{item.expiry_at}} {{ t('warehouseName') }}: + + + + + + + + + + + + + + + + + + + + + + + + + + + + 重置 + 确认 + + + + + + + + + + + + + + + 库存总数: + {{sumF.total_quantity}} + + + 合计金额(元): + {{sumF.total_amount}} + + + + @@ -60,16 +126,95 @@ import MescrollEmpty from '@/components/mescroll/mescroll-empty/mescroll-empty.vue'; import useMescroll from '@/components/mescroll/hooks/useMescroll.js'; import { getWpRelationshipList } from '@/addon/erp/api/inventory'; + import { getWarehouseSelect,getSupplierSelect} from '@/addon/erp/api/base'; import { onShow, onPageScroll, onReachBottom, onLoad } from '@dcloudio/uni-app'; const { downCallback, mescrollInit, getMescroll } = useMescroll(onPageScroll, onReachBottom); - const show = ref(false); - const searchParams = ref({ - status: undefined, - }); - + const queryShow = ref(false); + const sumShow = ref(false); + + const sumF = ref({ + total_quantity: 0, + total_amount: 0.00 + }) + const queryF = ref({ + batch_number: '', + warehouse_id: '', + product_name: '', + supplier_id: '', + hasQuery:0 + }) + + // 页面加载 + onLoad((option : any) => { + getWarehouseList() + getSupplierList(); + queryF.value.hasQuery=0 + sumShow.value=false + }) + + const querySearch = () => { + sumShow.value = false + queryShow.value = true + } + const queryClose = () => { + queryShow.value = false + } + const smmarieTip= ()=>{ + sumShow.value =!sumShow.value + } + const resetQuery =()=>{ + Object.keys(queryF.value ).forEach((key: string) => { + (queryF.value as any)[key] = "" + }) + queryF.value.hasQuery=0 + } + const submitQuery =()=>{ + queryShow.value = false + queryF.value.hasQuery=1 + getMescroll().resetUpScroll(); + } + + /** + * 仓库 + */ + const warehouseList = ref([]); + const warehouseIdChange = (e : any) => { + queryF.value.warehouse_id = e.id; + } + // 获取仓库 + const getWarehouseList = () => { + getWarehouseSelect({}).then((res : any) => { + warehouseList.value = res.data; + }).catch(err => { + // 如果是4001,没有绑定企业账号,强制跳转绑定 + if (err.code == 4001) { + redirect({ url: '/addon/erp/pages/member/bind' }) + } + }) + } + + /** + * 供应商 + */ + const supplierList = ref([]); + const supplierIdChange = (e : any) => { + queryF.value.supplier_id = e.id; + } + // 获取供应商 + const getSupplierList = () => { + getSupplierSelect({}).then((res : any) => { + supplierList.value = res.data; + }).catch(err => { + // 如果是4001,没有绑定企业账号,强制跳转绑定 + if (err.code == 4001) { + redirect({ url: '/addon/erp/pages/member/bind' }) + } + }) + } + // 获取系统状态栏的高度 let menuButtonInfo : any = {}; // 如果是小程序,获取右上角胶囊的尺寸信息,避免导航栏右侧内容与胶囊重叠(支付宝小程序非本API,尚未兼容) @@ -96,8 +241,14 @@ let data : Object = { page: mescroll.num, limit: mescroll.size, - status: searchParams.value.status + batch_number:queryF.value.hasQuery===1?queryF.value.batch_number:'', + warehouse_id:queryF.value.hasQuery===1?queryF.value.warehouse_id:'', + product_name:queryF.value.hasQuery===1?queryF.value.product_name:'', + supplier_id:queryF.value.hasQuery===1?queryF.value.supplier_id:'', }; + // 重置 sumF 变量 + sumF.value.total_quantity = 0; + sumF.value.total_amount = 0.00; getWpRelationshipList(data).then((res : any) => { let newArr = res.data.data; mescroll.endSuccess(newArr.length); @@ -106,6 +257,11 @@ relationshipList.value = []; //如果是第一页需手动制空列表 } relationshipList.value = relationshipList.value.concat(newArr); + relationshipList.value.forEach((item: any) => { + sumF.value.total_quantity += Number(item.inventory) + const amount = Number(sumF.value.total_amount) + Number(item.inventory) * Number(item.price) + sumF.value.total_amount = parseFloat(amount.toFixed(2)) + }) listLoading.value = false; loading.value = false; }).catch((err) => { @@ -120,5 +276,42 @@ } - \ No newline at end of file diff --git a/src/addon/erp/pages/member/bind.vue b/src/addon/erp/pages/member/bind.vue index 450dc1c..5458637 100644 --- a/src/addon/erp/pages/member/bind.vue +++ b/src/addon/erp/pages/member/bind.vue @@ -120,6 +120,7 @@ bindAdminAccout(formData).then((res : any) => { if (info.value) { memberStore.getMemberInfo() + memberStore.getUserBtnRole() redirect({ url: '/addon/erp/pages/member/index', mode: 'redirectTo' }) } else { memberStore.setToken(res.data.token) diff --git a/src/addon/erp/pages/outbound/order/add.vue b/src/addon/erp/pages/outbound/order/add.vue new file mode 100644 index 0000000..4554347 --- /dev/null +++ b/src/addon/erp/pages/outbound/order/add.vue @@ -0,0 +1,527 @@ + + + + + \ No newline at end of file diff --git a/src/addon/erp/pages/sell/delivery/detail.vue b/src/addon/erp/pages/outbound/order/detail.vue similarity index 59% rename from src/addon/erp/pages/sell/delivery/detail.vue rename to src/addon/erp/pages/outbound/order/detail.vue index 1e03958..6c0aa7b 100644 --- a/src/addon/erp/pages/sell/delivery/detail.vue +++ b/src/addon/erp/pages/outbound/order/detail.vue @@ -6,12 +6,8 @@ {{t('code')}}:{{formData.code}} - - - - + @@ -19,7 +15,7 @@ - {{ t('customerName') }}:{{formData.customer?.name}} @@ -32,11 +28,6 @@ class="ml-[20rpx] text-[var(--primary-color)]">{{formData.phone}} - - {{ t('city') }}:{{formData.city}} - - {{ t('address') }}:{{formData.address}} @@ -46,7 +37,7 @@ class="ml-[20rpx] text-[var(--primary-color)]">{{formData.type}} - {{ t('deliveryTime') }}:{{formData.delivery_time}} @@ -57,6 +48,18 @@ {{ t('remark') }}:{{formData.remark}} + + {{ '申领人' }}:{{formData.enter_name }} + + + {{ '出库人' }}:{{formData.store_name}} + + + {{ t('updateTime') }}:{{formData.update_time}} + @@ -74,50 +77,74 @@ - {{item.products?.name}} + {{item.product?.name}} {{ t('productCode') }}:{{item.products?.code}} + class="ml-[20rpx] text-[var(--primary-color)]">{{item.product?.code}} {{ t('productSpec') }}:{{item.products?.spec}} + class="ml-[20rpx] text-[var(--primary-color)]">{{item.product?.spec}} {{ t('productUnitId') }}:{{item.unit}} - {{ t('warehouseName') }}:{{item.w_name}} + 批次号: + {{item.batch_number}} - {{ t('deliveryQuantity') }}: + 仓库名称: + {{item.warehouse?.name}} + + + 出库数量: {{item.num}} - - {{ t('sellPrice') }}: + 单价(元): {{item.price}} {{ t('totalPrice') }}:{{ item.subtotal }} - - + + + 图片 + + + + + + + + 暂未上传图片 + + - + + + + + + + @@ -125,8 +152,8 @@ import { ref, reactive, computed, onMounted } from 'vue' import { t } from '@/locale' import { onLoad } from '@dcloudio/uni-app'; - import { getDeliveryInfo } from '@/addon/erp/api/sell'; - + import { getManualInfo ,takeOutOfStorage} from '@/addon/erp/api/sell'; + import { img } from '@/utils/common' const formRef : any = ref(null) const formData = reactive({ @@ -143,21 +170,53 @@ billing_time: '', remark: '', create_time: '', - status: '', - status_text: '', - productList: [] + storage_status: '', + storage_status_text: '', + productList: [], + outbound_image:"" }) - + const outWarehouseShow = ref(false); // 加载 onLoad((data : any) => { getInfo(data.id); }) - + const imageArr=computed (()=>{ + if(formData.outbound_image){ + return formData.outbound_image.split(',') + } + return [] + }) const getInfo = async (id : number) => { - const data = await (await getDeliveryInfo(id)).data; + const data = await (await getManualInfo(id)).data; Object.assign(formData, data); } + // 立即出库 + const handleOutWarehouse= (item:any)=>{ + outWarehouseShow.value=true + } + + // 确认立即出库 + const outWarehouseConfirm = () => { + takeOutOfStorage(formData.id) + .then((res:any) => { + if(res.code ===1){ + getInfo(formData.id); + outWarehouseShow.value = false; + } + }).catch(() => { }); + } + const previewImageClick=(url:string)=>{ + uni.previewImage({ + current: 0, + urls:[url] + }) + } - \ No newline at end of file diff --git a/src/addon/erp/pages/sell/sell/list.vue b/src/addon/erp/pages/outbound/order/list.vue similarity index 62% rename from src/addon/erp/pages/sell/sell/list.vue rename to src/addon/erp/pages/outbound/order/list.vue index 0d51a7b..9e0365a 100644 --- a/src/addon/erp/pages/sell/sell/list.vue +++ b/src/addon/erp/pages/outbound/order/list.vue @@ -1,23 +1,19 @@ @@ -80,15 +82,17 @@ import MescrollBody from '@/components/mescroll/mescroll-body/mescroll-body.vue'; import MescrollEmpty from '@/components/mescroll/mescroll-empty/mescroll-empty.vue'; import useMescroll from '@/components/mescroll/hooks/useMescroll.js'; - import { getSellList } from '@/addon/erp/api/sell'; + import { getManualList,takeOutOfStorage} from '@/addon/erp/api/sell'; import { onShow, onPageScroll, onReachBottom, onLoad } from '@dcloudio/uni-app'; const { downCallback, mescrollInit, getMescroll } = useMescroll(onPageScroll, onReachBottom); - - const show = ref(false); + const outWarehouseId=ref('') + const subsectionCurrent=ref(0) + const statusList = ref(['待出库','已完成']); + const outWarehouseShow = ref(false); const searchParams = ref({ - status: undefined, + status: 6, }); // 获取系统状态栏的高度 @@ -97,7 +101,17 @@ // #ifdef MP-WEIXIN || MP-BAIDU || MP-TOUTIAO || MP-QQ menuButtonInfo = uni.getMenuButtonBoundingClientRect(); // #endif - + onLoad(() => { + // 获取状态 + // getManualStatus().then((res:any) => { + // statusList.value = Object.values(res.data); + // }); + }) + // 分段器改变事件 + const handleChange = (index : number) => { + searchParams.value.status = index === 0?5:6; + getMescroll().resetUpScroll(); + } const mescrollTop = "20rpx" const sellList = ref>([]), @@ -117,9 +131,9 @@ let data : Object = { page: mescroll.num, limit: mescroll.size, - status: searchParams.value.status + storage_status: searchParams.value.status }; - getSellList(data).then((res : any) => { + getManualList(data).then((res : any) => { let newArr = res.data.data; mescroll.endSuccess(newArr.length); //设置列表数据 @@ -139,7 +153,33 @@ mescroll.endErr(); // 请求失败, 结束加载 }) } + // 立即出库 + const handleoutWarehouse= (item:any)=>{ + outWarehouseShow.value=true + outWarehouseId.value=item.id + } + + // 确认立即出库 + const outWarehouseConfirm = () => { + if (outWarehouseId.value == '') { + uni.showToast({ icon: 'none', title: t("Invalid ID") }); + return false; + } + takeOutOfStorage(outWarehouseId.value) + .then((res:any) => { + if(res.code ===1){ + getMescroll().resetUpScroll(); + outWarehouseId.value = ''; + outWarehouseShow.value = false; + } + }).catch(() => { }); + } - \ No newline at end of file diff --git a/src/addon/erp/pages/sell/sell/sell-select.vue b/src/addon/erp/pages/outbound/order/sell-select-copy.vue similarity index 94% rename from src/addon/erp/pages/sell/sell/sell-select.vue rename to src/addon/erp/pages/outbound/order/sell-select-copy.vue index 28d1243..394f7ef 100644 --- a/src/addon/erp/pages/sell/sell/sell-select.vue +++ b/src/addon/erp/pages/outbound/order/sell-select-copy.vue @@ -82,7 +82,7 @@ import MescrollBody from '@/components/mescroll/mescroll-body/mescroll-body.vue'; import MescrollEmpty from '@/components/mescroll/mescroll-empty/mescroll-empty.vue'; import useMescroll from '@/components/mescroll/hooks/useMescroll.js'; - import { getSellList } from '@/addon/erp/api/sell'; + import { getOutboundManualSelect } from '@/addon/erp/api/sell'; import { onShow, onPageScroll, onReachBottom, onLoad } from '@dcloudio/uni-app'; const { downCallback, mescrollInit, getMescroll } = useMescroll(onPageScroll, onReachBottom); @@ -90,12 +90,12 @@ const show = ref(false); const searchParams = ref({ - status: undefined, + id: undefined, }); // 页面加载 onLoad((option : any) => { - searchParams.value.status = option.status ? option.status : undefined; + searchParams.value.id = option.id ? option.id : undefined; }) @@ -124,13 +124,9 @@ const getListFn = (mescroll : mescrollStructure) => { listLoading.value = true; - let data : Object = { - page: mescroll.num, - limit: mescroll.size, - status: searchParams.value.status - }; - getSellList(data).then((res : any) => { - let newArr = res.data.data; + getOutboundManualSelect(searchParams.value.id).then((res : any) => { + let newArr = res.data; + console.log(res) mescroll.endSuccess(newArr.length); //设置列表数据 if (mescroll.num == 1) { diff --git a/src/addon/erp/pages/outbound/order/sell-select.vue b/src/addon/erp/pages/outbound/order/sell-select.vue new file mode 100644 index 0000000..ea2d6b7 --- /dev/null +++ b/src/addon/erp/pages/outbound/order/sell-select.vue @@ -0,0 +1,119 @@ + + + + + \ No newline at end of file diff --git a/src/addon/erp/pages/outbound/outPending/add.vue b/src/addon/erp/pages/outbound/outPending/add.vue new file mode 100644 index 0000000..cad57cc --- /dev/null +++ b/src/addon/erp/pages/outbound/outPending/add.vue @@ -0,0 +1,564 @@ + + + + + \ No newline at end of file diff --git a/src/addon/erp/pages/purchase/retire/detail.vue b/src/addon/erp/pages/outbound/outPending/detail.vue similarity index 52% rename from src/addon/erp/pages/purchase/retire/detail.vue rename to src/addon/erp/pages/outbound/outPending/detail.vue index 13fb31f..6c0aa7b 100644 --- a/src/addon/erp/pages/purchase/retire/detail.vue +++ b/src/addon/erp/pages/outbound/outPending/detail.vue @@ -6,12 +6,8 @@ {{t('code')}}:{{formData.code}} - - - - + @@ -19,22 +15,31 @@ - {{ t('supplierName') }}:{{formData.supplier?.name}} - - - {{ t('warehouseName') }}:{{formData.warehouse?.name}} + {{ t('customerId') }}:{{formData.customer?.name}} {{ t('contact') }}:{{formData.supplier?.contact}} - - - {{ t('phone') }}:{{formData.supplier?.phone}} + class="ml-[20rpx] text-[var(--primary-color)]">{{formData.contact}} + + {{ t('phone') }}:{{formData.phone}} + + + + {{ t('address') }}:{{formData.address}} + + + {{ t('type') }}:{{formData.type}} + + + {{ '送货日期' }}:{{formData.delivery_time}} + {{ t('billingTime') }}:{{formData.billing_time}} @@ -43,6 +48,14 @@ {{ t('remark') }}:{{formData.remark}} + + {{ '申领人' }}:{{formData.enter_name }} + + + {{ '出库人' }}:{{formData.store_name}} + {{ t('updateTime') }}:{{formData.update_time}} @@ -64,46 +77,74 @@ - {{item.products?.name}} + {{item.product?.name}} {{ t('productCode') }}:{{item.products?.code}} + class="ml-[20rpx] text-[var(--primary-color)]">{{item.product?.code}} {{ t('productSpec') }}:{{item.products?.spec}} + class="ml-[20rpx] text-[var(--primary-color)]">{{item.product?.spec}} {{ t('productUnitId') }}:{{item.unit}} - {{ t('retireQuantity') }}: - {{item.nums}} - + 批次号: + {{item.batch_number}} - {{ t('retirePrice') }}: + 仓库名称: + {{item.warehouse?.name}} + + + 出库数量: + {{item.num}} + + + 单价(元): {{item.price}} {{ t('totalPrice') }}:{{ item.subtotal }} - - + + + 图片 + + + + + + + + 暂未上传图片 + + - + + + + + + + @@ -111,8 +152,8 @@ import { ref, reactive, computed, onMounted } from 'vue' import { t } from '@/locale' import { onLoad } from '@dcloudio/uni-app'; - import { getRetireInfo } from '@/addon/erp/api/purchase'; - + import { getManualInfo ,takeOutOfStorage} from '@/addon/erp/api/sell'; + import { img } from '@/utils/common' const formRef : any = ref(null) const formData = reactive({ @@ -129,21 +170,53 @@ billing_time: '', remark: '', create_time: '', - status: '', - status_text: '', - productList: [] + storage_status: '', + storage_status_text: '', + productList: [], + outbound_image:"" }) - + const outWarehouseShow = ref(false); // 加载 onLoad((data : any) => { getInfo(data.id); }) - + const imageArr=computed (()=>{ + if(formData.outbound_image){ + return formData.outbound_image.split(',') + } + return [] + }) const getInfo = async (id : number) => { - const data = await (await getRetireInfo(id)).data; + const data = await (await getManualInfo(id)).data; Object.assign(formData, data); } + // 立即出库 + const handleOutWarehouse= (item:any)=>{ + outWarehouseShow.value=true + } + + // 确认立即出库 + const outWarehouseConfirm = () => { + takeOutOfStorage(formData.id) + .then((res:any) => { + if(res.code ===1){ + getInfo(formData.id); + outWarehouseShow.value = false; + } + }).catch(() => { }); + } + const previewImageClick=(url:string)=>{ + uni.previewImage({ + current: 0, + urls:[url] + }) + } - \ No newline at end of file diff --git a/src/addon/erp/pages/outbound/outPending/list.vue b/src/addon/erp/pages/outbound/outPending/list.vue new file mode 100644 index 0000000..6239424 --- /dev/null +++ b/src/addon/erp/pages/outbound/outPending/list.vue @@ -0,0 +1,339 @@ + + + + + \ No newline at end of file diff --git a/src/addon/erp/pages/product/product/add.vue b/src/addon/erp/pages/product/product/add.vue index 269babc..80f1efd 100644 --- a/src/addon/erp/pages/product/product/add.vue +++ b/src/addon/erp/pages/product/product/add.vue @@ -14,9 +14,15 @@ + + + + + - @@ -33,7 +39,7 @@ - @@ -41,30 +47,55 @@ + :placeholder="t('minWarningPlaceholder')" > - + + + + + + + + + + + > + + + + + - + - + @@ -87,8 +118,17 @@ import { onLoad } from '@dcloudio/uni-app'; import { getProductTypeSelect, getProductUnitSelect, addProduct } from '@/addon/erp/api/product'; import { generatedCode } from '@/addon/erp/utils/common'; + import {uploadImage } from '@/app/api/system' import { redirect } from '@/utils/common'; - + import { checkBtnPermission } from '@/utils/auth'; + import useMemberStore from '@/stores/member' + + const memberStore = useMemberStore() + interface FileItem { + url: string; + status?: string; + message?: string; + } const formRef : any = ref(null) const loading = ref(false) @@ -110,7 +150,7 @@ trigger: ['blur', 'change'], }, 'product_unit_id': { - type: 'string', + type: 'number', required: true, message: t('productUnitIdPlaceholder'), trigger: ['blur', 'change'], @@ -126,7 +166,7 @@ const formData = ref({ id: "", - code: generatedCode("P"), + code:generatedCode("P"), name: "", product_type_id: "", product_type_name: "", @@ -137,9 +177,12 @@ remark: "", product_unit_id: "", product_unit_name: "", + expiry_term :"", + expiry_alert_term:"", image: "", }) + const imageFileList=ref([]) /** * 分类 */ @@ -182,15 +225,63 @@ }) } - + const afterRead = async (event: any) => { + // 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式 + let lists:FileItem[] = [].concat(event.file) ; + let fileListLen = imageFileList.value.length; + lists = lists.filter((item:FileItem) => item.url); + lists.map((item: any) => { + imageFileList.value.push({ + url: item.url, + status: 'uploading', + message: '上传中', + }); + }) + for (let i = 0; i < lists.length; i++) { + const result = await uploadFilePromise(lists[i].url); + let item = imageFileList.value[fileListLen]; + imageFileList.value.splice(fileListLen, 1, { + ...item, + status: 'success', + message: '', + url: result as string, + }); + fileListLen++; + } + } + const imageDelete = (event:any) => { + if (event.index !== undefined && event.file !== undefined) { + const imageIndex = event.index; + const currentFileList = imageFileList.value; + currentFileList.splice(imageIndex, 1); + imageFileList.value = [...imageFileList.value]; + } + } + const uploadFilePromise = (url: any) => { + return new Promise((resolve, reject) => { + let a = uploadImage({ + filePath:url, + name: 'file' + }).then((res:any)=>{ + setTimeout(() => { + resolve(res.data.url as string); + }, 1000); + }) + }); + } // 保存 - const handSave = () => { + const handSave = async() => { + const hasPermission = await checkBtnPermission(memberStore.btnPermission, 'erp_product_add') + if (!hasPermission) return formRef.value.validate().then(() => { if (loading.value) return loading.value = true - + if(imageFileList.value.length > 0){ + const imgUrls=imageFileList.value.map((item:any)=>item.url) + formData.value.image=imgUrls.join(',') + } addProduct(formData.value).then((res : any) => { loading.value = false if (res.code == 1) { diff --git a/src/addon/erp/pages/product/product/out-product-select.vue b/src/addon/erp/pages/product/product/out-product-select.vue new file mode 100644 index 0000000..d4cf910 --- /dev/null +++ b/src/addon/erp/pages/product/product/out-product-select.vue @@ -0,0 +1,152 @@ + + + + + \ No newline at end of file diff --git a/src/addon/erp/pages/product/product/product-select.vue b/src/addon/erp/pages/product/product/product-select.vue index 8172325..6f3dec7 100644 --- a/src/addon/erp/pages/product/product/product-select.vue +++ b/src/addon/erp/pages/product/product/product-select.vue @@ -1,53 +1,49 @@