Browse Source

Merge remote-tracking branch 'origin/deli_scp' into deli_scp

# Conflicts:
#	src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts
deli_scp
kakilu 1 week ago
parent
commit
9962e4b6bc
  1. 14
      .env.development
  2. 62
      .env.dl-check
  3. 62
      .env.dl-prod
  4. 62
      .env.dl-test
  5. 12
      .env.prod
  6. 14
      .env.test
  7. 12
      .env.test-scp
  8. 24
      .env.wyf
  9. 7
      Dockerfile_prod
  10. 7
      Dockerfile_scp
  11. 19
      index.html
  12. 101
      nginx_prod.conf
  13. 53
      nginx_scp.conf
  14. 3
      package.json
  15. BIN
      public/deli_logo_white.png
  16. BIN
      public/deli_logo_white_blue.png
  17. BIN
      public/logo1.png
  18. BIN
      public/logo_white.png
  19. BIN
      public/logo_white_blue.png
  20. 26
      public/systemConfig.js
  21. 5
      src/api/wms/package/index.ts
  22. BIN
      src/assets/imgs/login-bg.png
  23. 3
      src/hooks/web/useTitle.ts
  24. 7
      src/layout/components/Logo/src/Logo.vue
  25. 3
      src/layout/components/UserInfo/src/UserInfo.vue
  26. 3
      src/locales/en-US.ts
  27. 3
      src/locales/zh-CN.ts
  28. 2
      src/router/modules/remaining.ts
  29. 37
      src/utils/systemParam.ts
  30. 20
      src/views/login/components/LoginForm.vue
  31. 9
      src/views/login/login.vue
  32. 2
      src/views/wms/basicDataManage/itemManage/itembasic/itembasic.data.ts
  33. 4
      src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue
  34. 2
      src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts
  35. 111
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue
  36. 4
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverBasicForm.vue
  37. 78
      src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts

14
.env.development

@ -37,10 +37,22 @@ VITE_INTERFACE_URL='http://localhost:12080/magic/web/index.html'
VITE_JMREPORT_BASE_URL='http://localhost:12080'
# 租户配置
VITE_TENANT='["长春1379","成都1397","长春2379"]'
VITE_TENANT='["德立天津工厂"]'
# 查看质检报告环境
VITE_REPORT_URL = 'http://dev.ccwin-in.com:25400'
# 是否需要验证码
VITE_NEED_CODE = false
# LOGO图标
VITE_LOGO_URL = '/src/assets/imgs/logo_white_blue.png'
# LOGO图标
VITE_LOGO_WHITE_URL = '/src/assets/imgs/logo_white.png'
# 项目名称
VITE_PROJECT_NAME = '富维海拉智慧工厂管理平台'
# 租户配置
VITE_TENANT_LIST='[{"text":"德立天津工厂","value":1}]'

62
.env.dl-check

@ -0,0 +1,62 @@
# 生产环境
NODE_ENV=test
VITE_DEV=false
# 请求路径
VITE_BASE_URL='http://172.16.0.13/api'
# 上传路径
VITE_UPLOAD_URL='http://172.16.0.13/api/admin-api/infra/file/upload'
# 接口前缀
VITE_API_BASEPATH=
# 接口地址
VITE_API_URL=/admin-api
# 是否删除debugger
VITE_DROP_DEBUGGER=true
# 是否删除console.log
VITE_DROP_CONSOLE=true
# 是否sourcemap
VITE_SOURCEMAP=false
# 打包路径
VITE_BASE_PATH=/
# 输出路径
VITE_OUT_DIR=sfms3.0
# 自定义接口路径
VITE_INTERFACE_URL='http://172.16.0.13/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.16.0.13'
# 租户配置
VITE_TENANT='["德立天津工厂"]'
# 查看质检报告环境
VITE_REPORT_URL = 'http://172.16.0.13'
# 是否需要验证码
VITE_NEED_CODE = false
# 是否需要下载PDA链接
VITE_PDA_URL = false
# LOGO图标
VITE_LOGO_URL = '/src/assets/imgs/logo_white_blue.png'
# LOGO图标
VITE_LOGO_WHITE_URL = '/src/assets/imgs/logo_white.png'
# 项目名称
VITE_PROJECT_NAME = '富维海拉智慧工厂管理平台'
# 租户配置
VITE_TENANT_LIST='[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'

62
.env.dl-prod

@ -0,0 +1,62 @@
# 生产环境
NODE_ENV=test
VITE_DEV=false
# 请求路径
VITE_BASE_URL='http://172.16.0.13/api'
# 上传路径
VITE_UPLOAD_URL='http://172.16.0.13/api/admin-api/infra/file/upload'
# 接口前缀
VITE_API_BASEPATH=
# 接口地址
VITE_API_URL=/admin-api
# 是否删除debugger
VITE_DROP_DEBUGGER=true
# 是否删除console.log
VITE_DROP_CONSOLE=true
# 是否sourcemap
VITE_SOURCEMAP=false
# 打包路径
VITE_BASE_PATH=/
# 输出路径
VITE_OUT_DIR=sfms3.0
# 自定义接口路径
VITE_INTERFACE_URL='http://172.16.0.13/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.16.0.13'
# 租户配置
VITE_TENANT='["德立天津工厂"]'
# 查看质检报告环境
VITE_REPORT_URL = 'http://172.16.0.13'
# 是否需要验证码
VITE_NEED_CODE = false
# 是否需要下载PDA链接
VITE_PDA_URL = false
# LOGO图标
VITE_LOGO_URL = '/src/assets/imgs/logo_white_blue.png'
# LOGO图标
VITE_LOGO_WHITE_URL = '/src/assets/imgs/logo_white.png'
# 项目名称
VITE_PROJECT_NAME = '富维海拉智慧工厂管理平台'
# 租户配置
VITE_TENANT_LIST='[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'

62
.env.dl-test

@ -0,0 +1,62 @@
# 生产环境
NODE_ENV=test
VITE_DEV=false
# 请求路径
VITE_BASE_URL='http://172.16.0.13/api'
# 上传路径
VITE_UPLOAD_URL='http://172.16.0.13/api/admin-api/infra/file/upload'
# 接口前缀
VITE_API_BASEPATH=
# 接口地址
VITE_API_URL=/admin-api
# 是否删除debugger
VITE_DROP_DEBUGGER=true
# 是否删除console.log
VITE_DROP_CONSOLE=true
# 是否sourcemap
VITE_SOURCEMAP=false
# 打包路径
VITE_BASE_PATH=/
# 输出路径
VITE_OUT_DIR=sfms3.0
# 自定义接口路径
VITE_INTERFACE_URL='http://172.16.0.13/magic/web/index.html'
# 积木报表请求路径
VITE_JMREPORT_BASE_URL='http://172.16.0.13'
# 租户配置
VITE_TENANT='["德立天津工厂"]'
# 查看质检报告环境
VITE_REPORT_URL = 'http://172.16.0.13'
# 是否需要验证码
VITE_NEED_CODE = false
# 是否需要下载PDA链接
VITE_PDA_URL = false
# LOGO图标
VITE_LOGO_URL = '/src/assets/imgs/logo_white_blue.png'
# LOGO图标
VITE_LOGO_WHITE_URL = '/src/assets/imgs/logo_white.png'
# 项目名称
VITE_PROJECT_NAME = '富维海拉智慧工厂管理平台'
# 租户配置
VITE_TENANT_LIST='[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'

12
.env.prod

@ -52,3 +52,15 @@ VITE_NEED_CODE = true
# 是否需要下载PDA链接
VITE_PDA_URL = false
# LOGO图标
VITE_LOGO_URL = '/src/assets/imgs/logo_white_blue.png'
# LOGO图标
VITE_LOGO_WHITE_URL = '/src/assets/imgs/logo_white.png'
# 项目名称
VITE_PROJECT_NAME = '富维海拉智慧工厂管理平台'
# 租户配置
VITE_TENANT_LIST='[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'

14
.env.test

@ -47,4 +47,16 @@ VITE_NEED_CODE = true
# 是否需要下载PDA链接
VITE_PDA_URL = true
VITE_PDA_URL = true
# LOGO图标
VITE_LOGO_URL = '/src/assets/imgs/logo_white_blue.png'
# LOGO图标
VITE_LOGO_WHITE_URL = '/src/assets/imgs/logo_white.png'
# 项目名称
VITE_PROJECT_NAME = '富维海拉智慧工厂管理平台'
# 租户配置
VITE_TENANT_LIST='[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'

12
.env.test-scp

@ -48,3 +48,15 @@ VITE_NEED_CODE = false
# 是否需要下载PDA链接
VITE_PDA_URL = false
# LOGO图标
VITE_LOGO_URL = '/src/assets/imgs/logo_white_blue.png'
# LOGO图标
VITE_LOGO_WHITE_URL = '/src/assets/imgs/logo_white.png'
# 项目名称
VITE_PROJECT_NAME = '富维海拉智慧工厂管理平台'
# 租户配置
VITE_TENANT_LIST='[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'

24
.env.wyf

@ -46,11 +46,11 @@ VITE_DEV=false
# # 上传路径
# VITE_UPLOAD_URL='http://192.168.0.37:12080/admin-api/infra/file/upload'
# 81 WMS请求路径 82 SCP
VITE_BASE_URL='http://172.22.32.9/api'
# 上传路径
VITE_UPLOAD_URL='http://172.22.32.9/api/admin-api/infra/file/upload'
# 请求路径
VITE_BASE_URL='http://dev.ccwin-in.com:25400/api'
# 上传路径
VITE_UPLOAD_URL='http://dev.ccwin-in.com:25400/api/admin-api/infra/file/upload'
# # 81 WMS请求路径 82 SCP
@ -116,7 +116,7 @@ VITE_INTERFACE_URL='http://dev.ccwin-in.com:25310/magic/web/index.html'
VITE_JMREPORT_BASE_URL='http://172.22.32.9:90'
# 租户配置
VITE_TENANT='["长春1379","成都1397","长春2379"]'
VITE_TENANT='["德立天津工厂"]'
# 查看质检报告环境
VITE_REPORT_URL = 'http://localhost'
@ -128,4 +128,16 @@ VITE_SYSTERM_UPDATE_ALERT = false
VITE_NEED_CODE = false
# 是否需要下载PDA链接
VITE_PDA_URL = true
VITE_PDA_URL = true
# LOGO图标
VITE_LOGO_URL = '/src/assets/imgs/logo_white_blue.png'
# LOGO图标
VITE_LOGO_WHITE_URL = '/src/assets/imgs/logo_white.png'
# 项目名称
VITE_PROJECT_NAME = '富维海拉智慧工厂管理平台'
# 租户配置
VITE_TENANT_LIST='[{"text":"德立天津工厂","value":1}]'

7
Dockerfile_prod

@ -1,7 +0,0 @@
# 设置基础镜像
FROM win-nginx
WORKDIR /opt/sfms3.0
COPY nginx_prod.conf /usr/local/nginx/conf/nginx.conf
# 将dist文件中的内容复制到 /opt/sfms3.0 这个目录下面
COPY sfms3.0/ /opt/sfms3.0

7
Dockerfile_scp

@ -1,7 +0,0 @@
# 设置基础镜像
FROM win-nginx
WORKDIR /opt/sfms3.0
COPY nginx_scp.conf /usr/local/nginx/conf/nginx.conf
# 将dist文件中的内容复制到 /opt/sfms3.0 这个目录下面
COPY sfms3.0/ /opt/sfms3.0

19
index.html

@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<!-- <link rel="icon" href="/favicon.ico" /> -->
<link rel="icon" href="/src/assets/imgs/logo1.png" />
<link rel="icon" href="" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="keywords" content="富维海拉智慧工厂管理平台" />
@ -132,7 +132,7 @@
<div class="app-loading">
<div class="app-loading-wrap">
<div class="app-loading-title">
<img src="/src/assets/imgs/logo_white_blue.png" class="app-loading-logo" alt="Logo" />
<img src="" class="app-loading-logo" alt="Logo" id="logo" />
<div class="app-loading-title" id="app-loading-title">%VITE_APP_TITLE%</div>
</div>
<div class="app-loading-item">
@ -143,5 +143,20 @@
</div>
</div>
<script type="module" src="/src/main.ts"></script>
<script>
document.getElementById('logo').src = systemConfig.logoUrl
document.getElementById('app-loading-title').innerHTML = systemConfig.projectName
function replaceFavicon(src) {
var link = document.querySelector("link[rel~='icon']");
if (!link){
link = document.createElement('link');
link.rel = 'icon';
document.getElementsByTagName('head')[0].appendChild(link);
}
link.href = src;
}
replaceFavicon(systemConfig.iconUrl);
document.title = systemConfig.projectName;
</script>
</body>
</html>

101
nginx_prod.conf

@ -1,101 +0,0 @@
user root;
worker_processes 2;
events {
worker_connections 1024;
}
http {
include mime.types;
charset utf-8,gbk;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_time $upstream_response_time"';
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 600s;
client_max_body_size 200m;
gzip on;
gzip_min_length 10k;
gzip_comp_level 9;
gzip_buffers 4 16k;
gzip_types text/plain application/javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
upstream sfms3.0 {
server localhost:90 weight=10 max_fails=3 fail_timeout=10s;
}
server {
listen 80;
server_name_in_redirect off;
server_name _;
location /api/ {
proxy_pass http://sfms3.0/;
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
}
location /profile/ {
alias /opt/profile/;
index index.html index.htm;
}
location / {
try_files $uri $uri/ /index.html;
root /opt/sfms3.0;
index index.html index.htm;
}
}
server {
listen 55563 ssl;
server_name_in_redirect off;
server_name _;
ssl_certificate /opt/faway-hella/faway-hella.com.pem;
ssl_certificate_key /opt/faway-hella/faway-hella.com.key;
location /api/ {
proxy_pass http://sfms3.0/;
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
}
location /profile/ {
alias /opt/profile/;
index index.html index.htm;
}
location / {
try_files $uri $uri/ /index.html;
root /opt/sfms3.0;
index index.html index.htm;
}
}
server {
listen 56563 ssl;
server_name_in_redirect off;
server_name _;
ssl_certificate /opt/faway-hella/faway-hella.com.pem;
ssl_certificate_key /opt/faway-hella/faway-hella.com.key;
location /api/ {
proxy_pass http://sfms3.0/;
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
}
location /profile/ {
alias /opt/profile/;
index index.html index.htm;
}
location / {
try_files $uri $uri/ /index.html;
root /opt/sfms3.0;
index index.html index.htm;
}
}
}

53
nginx_scp.conf

@ -1,53 +0,0 @@
user root;
worker_processes 2;
events {
worker_connections 1024;
}
http {
include mime.types;
charset utf-8,gbk;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_time $upstream_response_time"';
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 600s;
client_max_body_size 200m;
gzip on;
gzip_min_length 10k;
gzip_comp_level 9;
gzip_buffers 4 16k;
gzip_types text/plain application/javascript text/css application/xml text/javascript image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
upstream sfms3.0 {
server localhost:25311 weight=10 max_fails=3 fail_timeout=10s;
}
server {
listen 25400;
server_name_in_redirect off;
server_name _;
location /api/ {
proxy_pass http://sfms3.0/;
proxy_next_upstream http_500 http_502 http_503 http_504 error timeout invalid_header;
proxy_set_header X-Forwared-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
}
location /profile/ {
alias /opt/profile/;
index index.html index.htm;
}
location / {
try_files $uri $uri/ /index.html;
root /opt/sfms3.0;
index index.html index.htm;
}
}
}

3
package.json

@ -11,6 +11,9 @@
"test-scp": "vite build --mode test-scp",
"prod": "vite build --mode prod",
"preview": "vite preview",
"dl-prod": "vite build --mode dl-prod",
"dl-test": "vite build --mode dl-test",
"dl-check": "vite build --mode dl-check",
"lint": "eslint --fix --ext .js,.vue src"
},
"dependencies": {

BIN
public/deli_logo_white.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
public/deli_logo_white_blue.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
public/logo1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
public/logo_white.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

BIN
public/logo_white_blue.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

26
public/systemConfig.js

@ -1,20 +1,32 @@
const origin = window.location.origin//协议、域名和端口号
let systemConfig = {
// 请求路径
baseUrl: 'http://172.22.32.8/api',
baseUrl: `${origin}/api`,
// 上传路径
uploadUrl: 'http://172.22.32.8/api/admin-api/infra/file/upload',
uploadUrl: `${origin}/api/admin-api/infra/file/upload`,
// 自定义接口路径
interfaceUrl: 'http://172.22.32.8:90/magic/web/index.html',
interfaceUrl: `${origin}/magic/web/index.html`,
// 积木报表请求路径
jmreportBaseUrl: 'http://172.22.32.8:90',
jmreportBaseUrl: `${origin}`,
// 查看质检报告环境
reportUrl: 'https://scp.faway-hella.com',
reportUrl: `${origin}`,
// 租户配置
tenant: '["成都"]',
systermUpdateAlert: true,
systermUpdateUrl: 'https://scptest.faway-hella.com/',
systermUpdateUrl: `${origin}/`,
//是否需要验证码
needCode:false,
//是否需要PDA下载链接
pdaUrl:false,
pdaUrl: false,
// logo图标
logoUrl: '/logo_white_blue.png',
// logo图标
logoUrlWhite: '/logo_white.png',
// 项目名称
projectName: '富维海拉智慧工厂管理平台',
// 浏览器上方图标
iconUrl: '/logo1.png',
// 租戶列表
tenantList:'[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]'
}

5
src/api/wms/package/index.ts

@ -101,6 +101,11 @@ export const batchPrintingLable = async (data: any) => {
return await request.post({ url: `/wms/package/batchPrintingLable`, data })
}
// 批量打印标签(德立)
export const batchPrintingLablesForDL = async (data: any) => {
return await request.post({ url: `/wms/package/batchPrintingLablesForDL`, data })
}
// 批量打印标签多选
export const batchPrintingLables = async (data: any) => {

BIN
src/assets/imgs/login-bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 607 KiB

After

Width:  |  Height:  |  Size: 1.9 MiB

3
src/hooks/web/useTitle.ts

@ -1,6 +1,7 @@
import { watch, ref } from 'vue'
import { isString } from '@/utils/is'
import { useAppStoreWithOut } from '@/store/modules/app'
import { getProjectName } from '@/utils/systemParam'
const { t } = useI18n() // 国际化
const appStore = useAppStoreWithOut()
@ -15,7 +16,7 @@ export const useTitle = (newTitle?: string) => {
title,
(n, o) => {
if (isString(n) && n !== o && document) {
document.title = n.replace(import.meta.env.VITE_APP_TITLE,t(`ts.${import.meta.env.VITE_APP_TITLE}`))
document.title = n.replace(import.meta.env.VITE_APP_TITLE, t(`ts.${getProjectName()}`))
}
},
{ immediate: true }

7
src/layout/components/Logo/src/Logo.vue

@ -2,6 +2,7 @@
import { computed, onMounted, ref, unref, watch } from 'vue'
import { useAppStore } from '@/store/modules/app'
import { useDesign } from '@/hooks/web/useDesign'
import { getWhiteLogo,getProjectName } from '@/utils/systemParam'
defineOptions({ name: 'Logo' })
@ -13,7 +14,7 @@ const appStore = useAppStore()
const show = ref(true)
const title = computed(() => appStore.getTitle)
const title = computed(() =>getProjectName())
const layout = computed(() => appStore.getLayout)
@ -77,9 +78,9 @@ watch(
]"
to="/"
>
<img
<img
class="h-24px ml-10px mr-10px h-40px"
src="@/assets/imgs/logo_white.png"
:src="getWhiteLogo()"
/>
<!-- <img
class="h-24px w-[calc(var(--logo-height)-20px)]"

3
src/layout/components/UserInfo/src/UserInfo.vue

@ -7,6 +7,7 @@ import avatarImg from '@/assets/imgs/avatar.gif'
import { useUserStore } from '@/store/modules/user'
import { useTagsViewStore } from '@/store/modules/tagsView'
import { getTenantId } from '@/utils/auth'
import { getTenantList } from '@/utils/systemParam'
defineOptions({ name: 'UserInfo' })
@ -29,7 +30,7 @@ const user = wsCache.get(CACHE_KEY.USER)
const avatar = user.user.avatar ? user.user.avatar : avatarImg
const userName = user.user.nickname ? user.user.nickname : 'Admin'
const names =[{"text":"长春1379","value":1},{"text":"成都1397","value":2},{"text":"长春2379","value":3}]
const names =JSON.parse(getTenantList())
const tenant = names.find(item=>item.value == getTenantId())
const language = wsCache.get('lang')
if('en-US'==language){

3
src/locales/en-US.ts

@ -1120,7 +1120,8 @@ export default {
:'Check the quality inspection report',
:'ChangChun',
:'ChengDu',
:'FAWAY HELLA Smart Factory Management Platform',
: 'FAWAY HELLA Smart Factory Management Platform',
: 'Deli Intelligent Manufacturing System',
:'Purchase unreceived record',
:'Please select the desired shipment tracking number',
:'Not more in size',

3
src/locales/zh-CN.ts

@ -1123,7 +1123,8 @@ export default {
:'查看质检报告',
:'长春',
:'成都',
:'富维海拉智慧工厂管理平台',
: '富维海拉智慧工厂管理平台',
: '德立智能制造系统',
:'采购未收货记录',
:'请选择要货计划单号',
:'大小不超过',

2
src/router/modules/remaining.ts

@ -36,7 +36,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: '/redirect',
component: Layout,
name: 'Redirect',
name: 'redirectNew',
children: [
{
path: '/redirect/:path(.*)',

37
src/utils/systemParam.ts

@ -8,6 +8,10 @@ const systermUpdateAlert = ref(import.meta.env.VITE_SYSTERM_UPDATE_ALERT)
const systermUpdateUrl = ref(import.meta.env.VITE_SYSTERM_UPDATE_URL)
const needCode = ref(import.meta.env.VITE_NEED_CODE)
const pdaUrl = ref(import.meta.env.VITE_PDA_URL)
const logoUrl = ref(import.meta.env.VITE_LOGO_URL)
const logoUrlWhite = ref(import.meta.env.VITE_LOGO_WHITE_URL)
const projectName = ref(import.meta.env.VITE_PROJECT_NAME)
const tenantList = ref(import.meta.env.VITE_TENANT_LIST)
const mode = ref(import.meta.env.MODE)
// 获取baseUrl
@ -96,3 +100,36 @@ export const getPDAUrl = () => {
}
//获取logo图标
export const getLogo = () => {
if (mode.value === 'prod') {
return systemConfig.logoUrl
} else {
return logoUrl.value
}
}
//获取logo图标
export const getWhiteLogo = () => {
if (mode.value === 'prod') {
return systemConfig.logoUrlWhite
} else {
return logoUrlWhite.value
}
}
//获取项目名称
export const getProjectName = () => {
if (mode.value === 'prod') {
return systemConfig.projectName
} else {
return projectName.value
}
}
//获取租户列表
export const getTenantList = () => {
if (mode.value === 'prod') {
return systemConfig.tenantList
} else {
return tenantList.value
}
}

20
src/views/login/components/LoginForm.vue

@ -308,16 +308,16 @@
authUtil.removeLoginForm()
}
authUtil.setToken(res)
if(getSystermUpdateAlert()=='true'||getSystermUpdateAlert()===true){
await ElMessageBox.alert(
'<strong>系统迁移,请移步至</strong>' +
`<a href=${getSystermUpdateUrl()} target="_blank">${getSystermUpdateUrl()}</a>`,
'重要提示',
{
dangerouslyUseHTMLString: true,
}
)
}
// if(getSystermUpdateAlert()=='true'||getSystermUpdateAlert()===true){
// await ElMessageBox.alert(
// '<strong></strong>' +
// `<a href=${getSystermUpdateUrl()} target="_blank">${getSystermUpdateUrl()}</a>`,
// '',
// {
// dangerouslyUseHTMLString: true,
// }
// )
// }
if (!redirect.value) {
redirect.value = '/'
}

9
src/views/login/login.vue

@ -9,8 +9,8 @@
>
<!-- 左上角的 logo + 系统标题 -->
<div class="relative flex items-center ">
<img alt="" class="mr-10px w-144px h-36px" src="@/assets/imgs/logo_white_blue.png" />
<span class="text-20px font-bold">{{ t(`ts.${underlineToHump(appStore.getTitle)}`) }}</span>
<img alt="" class="mr-10px h-36px" :src="getLogo()" />
<span class="text-20px font-bold">{{ t(`ts.${underlineToHump(getProjectName())}`) }}</span>
</div>
<!-- 左边的背景图 + 欢迎语 -->
<div class="h-[calc(100%-60px)] flex items-center justify-center">
@ -33,8 +33,8 @@
class="flex items-center justify-between at-2xl:justify-end at-xl:justify-end"
>
<div class="flex items-center at-2xl:hidden at-xl:hidden">
<img alt="" class="mr-10px w-144px h-36px" src="@/assets/imgs/logo_white_blue.png" />
<span class="text-20px font-bold">{{ t(`ts.${underlineToHump(appStore.getTitle)}`) }}</span>
<img alt="" class="mr-10px h-36px" :src="getLogo()" />
<span class="text-20px font-bold">{{ t(`ts.${underlineToHump(getProjectName())}`) }}</span>
</div>
<div class="flex items-center justify-end space-x-10px">
<!-- <ThemeSwitch /> -->
@ -72,6 +72,7 @@ import { useDesign } from '@/hooks/web/useDesign'
import { useAppStore } from '@/store/modules/app'
import { ThemeSwitch } from '@/layout/components/ThemeSwitch'
import { LocaleDropdown } from '@/layout/components/LocaleDropdown'
import {getLogo,getProjectName } from '@/utils/systemParam'
import { LoginForm, MobileForm, QrCodeForm, RegisterForm, SSOLoginVue,QRCodePDA } from './components'

2
src/views/wms/basicDataManage/itemManage/itembasic/itembasic.data.ts

@ -181,7 +181,7 @@ export const Itembasic = useCrudSchemas(reactive<CrudSchema[]>([
},
},
{
label: '回收件',
label: '可标准',
field: 'isRecycled',
sort: 'custom',
dictType: DICT_TYPE.TRUE_FALSE,

4
src/views/wms/purchasereceiptManage/supplierdeliver/purchaseMain/index.vue

@ -229,8 +229,8 @@ console.log('PurchaseMain.allSchemas.searchSchema',PurchaseMain.allSchemas.searc
//
const HeadButttondata = [
// defaultButtons.defaultAddBtn({ hasPermi: 'wms:purchase-main:create' }), //
// defaultButtons.defaultImportBtn({ hasPermi: 'wms:purchase-main:import' }), //
defaultButtons.defaultAddBtn({ hasPermi: 'wms:purchase-main:create' }), //
defaultButtons.defaultImportBtn({ hasPermi: 'wms:purchase-main:import' }), //
defaultButtons.defaultExportBtn({ hasPermi: 'wms:purchase-main:export' }), //
// defaultButtons.mainListSelectionOrderPubBtn(null), //
defaultButtons.defaultFreshBtn(null), //

2
src/views/wms/purchasereceiptManage/supplierdeliver/purchasePlanMain/purchasePlanMain.data.ts

@ -124,7 +124,7 @@ export const PurchasePlanMain = useCrudSchemas(reactive<CrudSchema[]>([
searchPage: PurchaseMainApi.getPurchaseMainPage,
searchCondition: [{
key: 'type',
value: 'SCHEDULE,OUTSOURCING',
value: 'SCHEDULE,OUTSOURCING,DISCRETE',
isMainValue: false
},{
key: 'available',

111
src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/index.vue

@ -55,7 +55,8 @@
</el-button>
</template>
<template #action="{ row, $index }">
<ButtonBaseMore :showMoreLength="wsCache.get('lang')=='en-US'?2:3"
<ButtonBaseMore
:showMoreLength="wsCache.get('lang') == 'en-US' ? 2 : 3"
:Butttondata="butttondata(row, $index)"
@button-base-click="buttonTableClick($event, row)"
/>
@ -99,21 +100,25 @@
<!-- 详情 -->
<Detail
ref="detailRef"
:annexTable="[
annexInspectionDetail,
{
label: '履历表',
prop: 'uploadFile',
tableName: 'SupplierdeliverCurriculumVitae',
hasSubDetail: false, //
showPreview: true, //
hiddenUpload:false,
hiddenDelete:false,
fileType: ['pdf'],
limit:999999,
align: 'left',
}
]"
:annexTable="
switchCurriculumVitae
? [
annexInspectionDetail,
{
label: '履历表',
prop: 'uploadFile',
tableName: 'SupplierdeliverCurriculumVitae',
hasSubDetail: false, //
showPreview: true, //
hiddenUpload: false,
hiddenDelete: false,
fileType: ['pdf'],
limit: 999999,
align: 'left'
}
]
: [annexInspectionDetail]
"
:isBasic="false"
:allSchemas="SupplierdeliverRequestMain.allSchemas"
:detailAllSchemas="SupplierdeliverRequestDetail.allSchemas"
@ -152,7 +157,7 @@
@footButtonClick="footButtonClick"
@formSelectChange="formSelectChangeLabel"
/>
<!-- 上传质量报告 -->
<BasicForm
ref="ploadQualityReportRef"
@ -219,6 +224,9 @@ import labelForm from './labelForm.vue'
import { getJmreportBaseUrl } from '@/utils/systemParam'
import { usePageLoading } from '@/hooks/web/usePageLoading'
import { getBaseUrl } from '@/utils/systemParam'
import * as SwitchApi from '@/api/wms/switch'
import { fa } from 'element-plus/es/locale'
const { loadStart, loadDone } = usePageLoading()
//
defineOptions({ name: 'SupplierdeliverRequestMain' })
@ -236,13 +244,13 @@ const annexInspectionDetail = ref({
tableName: 'SupplierdeliverInspectionDetail',
hasSubDetail: true, //
showPreview: true, //
hiddenUpload:false,
hiddenDelete:false,
hiddenUpload: false,
hiddenDelete: false,
fileType: ['pdf'],
limit:999999,
limit: 999999,
align: 'left',
updateUrl: getBaseUrl()+import.meta.env.VITE_API_URL+'/infra/file/uploadFile',
checkUploadUrl:SupplierdeliverRequestMainApi.checkUploadFileData,
updateUrl: getBaseUrl() + import.meta.env.VITE_API_URL + '/infra/file/uploadFile',
checkUploadUrl: SupplierdeliverRequestMainApi.checkUploadFileData,
//
subDetailTableData: {
queryParams: [
@ -258,14 +266,12 @@ const annexInspectionDetail = ref({
pageSize: 10,
currentPage: 1
}
})
const tableColumns = ref([
...SupplierdeliverRequestMain.allSchemas.tableColumns,
...SupplierdeliverRequestDetail.allSchemas.tableMainColumns
])
//
const updataTableColumns = (val) => {
tableColumns.value = val
@ -544,7 +550,7 @@ const butttondata = (row, $index) => {
{
label: t('ts.上传履历表'),
name: 'mainPlanCurriculumVitae',
hide: row.status==5,
hide: !switchCurriculumVitae.value || row.status == 5,
type: 'primary',
icon: '',
color: '',
@ -623,9 +629,9 @@ const buttonTableClick = async (val, row) => {
} else if (val == 'mainPlanUploadQualityReport') {
//
handleUploadQualityReport(row)
}else if (val == 'mainPlanCurriculumVitae') {
} else if (val == 'mainPlanCurriculumVitae') {
//
handleUploadCurriculumVitae(row,'发货单号', row.asnNumber)
handleUploadCurriculumVitae(row, '发货单号', row.asnNumber)
} else if (val == 'mainPlanSub') {
//
handleSub(row.masterId)
@ -669,12 +675,14 @@ const buttonTableClick = async (val, row) => {
tableObject.loading = true
ElMessageBox.confirm(
`<div>
<strong style="color:red;font-size:18px">${t(`ts.${'重新生成标签后必须撕毁原标签,打印并粘贴新标签,如标签错误将拒绝收货!!'}`)}</strong>
<strong style="color:red;font-size:18px">${t(
`ts.${'重新生成标签后必须撕毁原标签,打印并粘贴新标签,如标签错误将拒绝收货!!'}`
)}</strong>
<br>
<span>${t(`ts.${'重新生成标签会删除上次生成的标签,是否确认继续?'}`)}</span>
</div>`,
t('ts.提示'),
{
{
confirmButtonText: t('ts.确 认'),
cancelButtonText: t('ts.取 消'),
dangerouslyUseHTMLString: true
@ -824,7 +832,7 @@ const openDetail = (row: any, titleName: any, titleValue: any) => {
.get(CACHE_KEY.DEPT)
.find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
annexInspectionDetail.value.hiddenDelete = row.status==8 //HL-5838-status=8
annexInspectionDetail.value.hiddenDelete = row.status == 8 //HL-5838-status=8
detailRef.value.openDetail(row, titleName, titleValue, 'requestSupplierdeliverMain')
}
/** 上传履历表 */
@ -833,11 +841,11 @@ const handleUploadCurriculumVitae = async (row: any, titleName: any, titleValue:
.get(CACHE_KEY.DEPT)
.find((account) => account.id == row.departmentCode)?.name
if (departmentCode) row.departmentCode = JSON.parse(JSON.stringify(departmentCode))
annexInspectionDetail.value.hiddenDelete = row.status==8 //HL-5838-status=8
annexInspectionDetail.value.hiddenDelete = row.status == 8 //HL-5838-status=8
detailRef.value.openDetail(row, titleName, titleValue, 'requestSupplierdeliverMain')
nextTick(()=>{
nextTick(() => {
detailRef.value.changeTabCurrent({
label:'履历表'
label: '履历表'
})
})
}
@ -982,9 +990,6 @@ const handleUploadQualityReport = async (row) => {
//uploadQualityReportTableData.value = [tableFormKeys]
}
const submitFormUploadQualityReport = async (formType, data) => {
delete data.number
data.subList = uploadQualityReportTableData.value //
@ -1146,7 +1151,7 @@ const clearInput = async (field, row, index) => {
}
const BASE_URL = getJmreportBaseUrl()
const src = ref(BASE_URL + '/jmreport/view/922729953438072832?token=' + getAccessToken())
const src = ref(BASE_URL + '/jmreport/view/1038243804040212480?token=' + getAccessToken())
getListApi: PurchasePlanDetailApi.getPurchasePlanDetailPage //
//
@ -1186,15 +1191,26 @@ const searchTableSuccess1 = async (formField, searchField, val, formRef, type, r
}
// window.open(src.value + '&asn_number=' + val.map(item1=>item1.number).join(','))
await PackageApi.batchPrintingLable(val.map((item1) => item1.number).join(','))
.then((res) => {
await PackageApi.batchPrintingLablesForDL(val.map((item1) => item1.number).join(',')).then(
(res) => {
console.log(res)
window.open(src.value + '&asn_number=' + res)
})
.catch((err) => {
console.log(err)
message.error(t('ts.创建标签失败'))
})
if (res.zzLabel) {
//
const src = ref(BASE_URL + '/jmreport/view/1037887334228496384?token=' + getAccessToken())
window.open(src.value + '&asn_number=' + res.zzLabel)
}
if (res.cgLabel) {
//
const src = ref(BASE_URL + '/jmreport/view/1038243804040212480?token=' + getAccessToken())
window.open(src.value + '&asn_number=' + res.cgLabel)
}
if (res.hsjLabel) {
//
const src = ref(BASE_URL + '/jmreport/view/1038602906075467776?token=' + getAccessToken())
window.open(src.value + '&asn_number=' + res.hsjLabel)
}
}
)
}
const print = async () => {
@ -1329,10 +1345,13 @@ const getDefaultSupplier = async () => {
}
console.log('defaultSupplierCode', defaultSupplierCode)
}
const switchCurriculumVitae = ref(false)
/** 初始化 **/
onMounted(async () => {
getDefaultSupplier()
let switch2 = await SwitchApi.getByCode('supplerUploadResumeFlag')
switchCurriculumVitae.value = switch2 == 'TRUE'
console.log('switchCurriculumVitae', switchCurriculumVitae.value)
getList()
importTemplateData.templateUrl = await SupplierdeliverRequestMainApi.importTemplate()

4
src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverBasicForm.vue

@ -211,7 +211,8 @@ const searchTableSuccess = (formField, searchField, val, formRef, type, row) =>
newRow['shippedQty'] = item['shippedQty']
newRow['qty'] = item['planQty'] - item['shippedQty']
newRow['minProduceDate'] = item['minProduceDate'] //
newRow['produceDate'] = dayjs().valueOf() //
newRow['produceDate'] = dayjs().valueOf() //
newRow['heatTreatmentDate'] = dayjs().valueOf() //
let produceDateStr = formatDate(newRow['produceDate'],'YYYYMMDD');
newRow['batch'] = produceDateStr
newRow['supplierBatch'] = produceDateStr
@ -294,6 +295,7 @@ const getSearchTableData = async (number,formField,searchField,isAll)=>{
newRow['qty'] = row['planQty'] - row['shippedQty']
newRow['minProduceDate'] = row['minProduceDate'] //
newRow['produceDate'] = dayjs().valueOf() //
newRow['heatTreatmentDate'] = dayjs().valueOf() //
let produceDateStr = formatDate(newRow['produceDate'],'YYYYMMDD');
newRow['batch'] = produceDateStr
newRow['supplierBatch'] = produceDateStr

78
src/views/wms/purchasereceiptManage/supplierdeliver/supplierdeliverRequestMain/supplierdeliverRequestMain.data.ts

@ -770,6 +770,84 @@ export const SupplierdeliverRequestDetail = useCrudSchemas(reactive<CrudSchema[]
disabled: true
}
},
{
label: '钢卷号',
field: 'steelCoilNumber',
sort: 'custom',
table: {
width: 150
},
sortTableDefault:8,
tableForm: {
disabled: false
}
},
{
label: '炉号',
field: 'heatNumber',
sort: 'custom',
table: {
width: 150
},
sortTableDefault:8,
tableForm: {
disabled: false
}
},
{
label: '热处理日期',
field: 'heatTreatmentDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
sortTableDefault:7,
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
}
},
tableForm: {
type: 'FormDate',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
}
},
{
label: '有效日期',
field: 'effectiveDate',
formatter: dateFormatter2,
detail: {
dateFormat: 'YYYY-MM-DD'
},
sort: 'custom',
table: {
width: 180
},
sortTableDefault:7,
form: {
component: 'DatePicker',
componentProps: {
style: {width: '100%'},
type: 'date',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
}
},
tableForm: {
type: 'FormDate',
dateFormat: 'YYYY-MM-DD',
valueFormat: 'x',
}
},
{
label: '计划数量',
field: 'planQty',

Loading…
Cancel
Save