廖井涛
2025-09-12 fc28d01cfa022d0f91ec719490342d726db2e105
Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
1个文件已添加
11个文件已修改
240 ■■■■ 已修改文件
north-glass-erp/northglass-erp/index.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/public/config.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/assets/main.css 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/hook/footSum.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/layout/MainErpView.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/utils/request.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/utils/requestOptimize.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/utils/requestTemp.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/utils/webSocket.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/LoginView.vue 168 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/index.html
@@ -10,5 +10,6 @@
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
    <script src="/config.js"></script>
  </body>
</html>
north-glass-erp/northglass-erp/public/config.js
New file
@@ -0,0 +1,12 @@
const ip = 'localhost'
window.ipConfig = {
    serverUrl:`${ip}:8086`,
    webSocketUrl:`${ip}:12345`,
    serverUrlTemp:`${ip}:8079`,
    serverUrlOptimize:`${ip}:8078`
}
//义乌 192.168.0.39 192.168.2.100
//公司 bore.pub 10.153.19.150
//洛阳 172.17.2.7
//天津 192.168.150.39
north-glass-erp/northglass-erp/src/assets/main.css
@@ -7,8 +7,14 @@
  font-weight: normal;
  height: 100%;
  width: 100%;
  min-width: 1536px;
  min-height: 730px;
  /*min-width: 1536px;
  min-height: 730px;*/
}
@media (max-width: 500px) {
  /*#app {
    transform: rotate(90deg); !* 当宽度小于600px时,翻转元素 *!
  }*/
}
a,
@@ -31,7 +37,6 @@
  }
  #app {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
north-glass-erp/northglass-erp/src/hook/footSum.js
@@ -1,12 +1,14 @@
import {multiply,multiplyAuto,divideAuto,add} from '@/utils/decimal'
export default function footSum(list, field) {
    let count = 0
    list.forEach(item => {
        if(field.indexOf('.')>-1){
            let  array = field.split('.')
            count += Number(item[array[0]][array[1]]) || 0
            count = add((item[array[0]][array[1]] || 0), count)
        }else {
            count += Number(item[field])  || 0
            count =add((item[field]  || 0), count)
        }
    })
    return count.toFixed(2)
    return count
}
north-glass-erp/northglass-erp/src/layout/MainErpView.vue
@@ -127,7 +127,7 @@
      <el-header >
        <div style="height: 100%;width: 100%;display: flex">
          <img src="../assets/northGlass.ico" alt="" style="max-width: 100%;max-height: 100%">
          <h3 style="margin: 1rem  ;font-weight: bold;width: 40vw;"> {{$t('main.titleFirst') + user + $t('main.titleLast')}}</h3>
          <h3 style="margin: 1rem  ;font-weight: bold;width: 70vw;"> {{$t('main.titleFirst') + user + $t('main.titleLast')}}</h3>
          <span style="height: 70%;width: 78vw;margin-top: 1.5rem;" >
<!--            <el-button   class="sys-quit" @click="quit"  type="info" round>-->
north-glass-erp/northglass-erp/src/utils/request.js
@@ -1,9 +1,9 @@
import axios from 'axios'
import config from '../../config'
import useUserInfoStore from '@/stores/userInfo'
const userStore=useUserInfoStore()
console.log(window.ipConfig.serverUrl)
const request = axios.create({
    baseURL: `http://${config.serverUrl}`,  // 注意!! 这里是全局统一加上了 后端接口前缀 前缀,后端必须进行跨域配置!
    baseURL: `http://${window.ipConfig.serverUrl}`,  // 注意!! 这里是全局统一加上了 后端接口前缀 前缀,后端必须进行跨域配置!
    timeout: 60000
})
north-glass-erp/northglass-erp/src/utils/requestOptimize.js
@@ -1,9 +1,8 @@
import axios from 'axios'
import config from '../../config'
import useUserInfoStore from '@/stores/userInfo'
const userStore=useUserInfoStore()
const request = axios.create({
    baseURL: `http://${config.serverUrlOptimize}`,  // 注意!! 这里是全局统一加上了 后端接口前缀 前缀,后端必须进行跨域配置!
    baseURL: `http://${window.ipConfig.serverUrlOptimize}`,  // 注意!! 这里是全局统一加上了 后端接口前缀 前缀,后端必须进行跨域配置!
    timeout: 60000
})
north-glass-erp/northglass-erp/src/utils/requestTemp.js
@@ -1,9 +1,8 @@
import axios from 'axios'
import config from '../../config'
import useUserInfoStore from '@/stores/userInfo'
const userStore=useUserInfoStore()
const request = axios.create({
    baseURL: `http://${config.serverUrlTemp}`,  // 注意!! 这里是全局统一加上了 后端接口前缀 前缀,后端必须进行跨域配置!
    baseURL: `http://${window.ipConfig.serverUrlTemp}`,  // 注意!! 这里是全局统一加上了 后端接口前缀 前缀,后端必须进行跨域配置!
    timeout: 60000
})
north-glass-erp/northglass-erp/src/utils/webSocket.js
@@ -1,4 +1,4 @@
import config from '../../config'
var websock = null;
var global_callback = null;
let isConnect = false; //连接标识 避免重复连接
@@ -7,7 +7,7 @@
var serverPort = "/ws"; // webSocket连接端口
var wsuri = `ws://${config.webSocketUrl}/ws`
var wsuri = `ws://${window.ipConfig.webSocketUrl}/ws`
function createWebSocket(callback) {
north-glass-erp/northglass-erp/src/views/LoginView.vue
@@ -122,99 +122,92 @@
</script>
<template>
  <div class="mainDiv" >
  <div class="mainDiv1" >
    <div id="main-login">
      <el-row style="height: 60vh;width: 70vw;" :gutter="50">
        <el-col :span="14">
          <div id="img-div">
            <img id="img-pic" src="@/assets/img.png" alt="">
          </div>
        </el-col>
        <el-col :span="10">
          <div id="div-login">
            <el-select
                @change="changeLanguage"
                v-model="language"
                placeholder=" "
                style="float: right;width: 6rem">
              <el-option value="zh-CN"  label="中文" />
              <el-option value="en-US"  label="English" />
              <el-option value="ru"  label="Русский язык" />
              <el-option value="ar"  label="بالعربية" />
              <el-option value="ko-KR"  label="한국어" />
            </el-select>
            <h2>{{$t('login.SysName')}}</h2>
            <el-form
                @submit.native.prevent
                ref="ruleFormRef"
                :model="userForm"
                status-icon
                :rules="rules"
            >
              <el-form-item :label="$t('login.user')+':'" prop="userId">
                <el-input
                    v-model="userForm.userId"
                    type="text"
                    autocomplete="off"
                    :prefix-icon="Avatar"
                    :placeholder="$t('login.userErr')"
                />
              </el-form-item>
              <el-form-item :label="$t('login.password')+':'" prop="pass">
                <el-input
                    v-model="userForm.pass"
                    @blur="changeRegister"
                    type="password"
                    autocomplete="off"
                    :prefix-icon="Lock"
                    :placeholder="$t('login.pwErr')"
                />
              </el-form-item>
              <el-form-item id="submitForm">
                <el-button
                    :loading="registerLoadings"
                    :disabled="registerState"
                    type="primary"
                    @click="register"
                >{{$t('login.register')}}
                </el-button>
                <el-button
                    :loading="loginLoadings"
                    type="primary"
                    native-type="submit"
                    @click="submitForm(ruleFormRef)"
                    @keyup.enter.native="keyDown(e)"
                >{{$t('login.login')}}
                </el-button>
      <div id="img-div">
        <img id="img-pic" src="@/assets/img.png" alt="">
      </div>
      <div id="div-login">
        <el-select
            @change="changeLanguage"
            v-model="language"
            placeholder=" "
            style="float: right;width: 6rem">
          <el-option value="zh-CN"  label="中文" />
          <el-option value="en-US"  label="English" />
          <el-option value="ru"  label="Русский язык" />
          <el-option value="ar"  label="بالعربية" />
          <el-option value="ko-KR"  label="한국어" />
        </el-select>
        <h2>{{$t('login.SysName')}}</h2>
        <el-form
            @submit.native.prevent
            ref="ruleFormRef"
            :model="userForm"
            status-icon
            :rules="rules"
        >
          <el-form-item :label="$t('login.user')+':'" prop="userId">
            <el-input
                v-model="userForm.userId"
                type="text"
                autocomplete="off"
                :prefix-icon="Avatar"
                :placeholder="$t('login.userErr')"
            />
          </el-form-item>
          <el-form-item :label="$t('login.password')+':'" prop="pass">
            <el-input
                v-model="userForm.pass"
                @blur="changeRegister"
                type="password"
                autocomplete="off"
                :prefix-icon="Lock"
                :placeholder="$t('login.pwErr')"
            />
          </el-form-item>
          <el-form-item id="submitForm">
            <el-button
                :loading="registerLoadings"
                :disabled="registerState"
                type="primary"
                @click="register"
            >{{$t('login.register')}}
            </el-button>
            <el-button
                :loading="loginLoadings"
                type="primary"
                native-type="submit"
                @click="submitForm(ruleFormRef)"
                @keyup.enter.native="keyDown(e)"
            >{{$t('login.login')}}
            </el-button>
              </el-form-item>
            </el-form>
          </div>
        </el-col>
      </el-row>
          </el-form-item>
        </el-form>
      </div>
    </div>
  </div>
</template>
<style scoped>
.mainDiv{
  //background-color: #1890FF;
  overflow: hidden;
  /*width: 100%;
  height: 100%;*/
.mainDiv1{
//background-color: #1890FF;
  //overflow: hidden;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center; /* 同时水平和垂直居中 */
}
#main-login{
  margin: 150px auto 0 auto;
  height: 60vh;
  width: 70vw;
  height: 60%;
  width: 70%;
  //background-color: #f2f2f2;
//background-color: #f2f2f2;
}
#img-div{
  width: 100%;
  width: 55%;
  height: 100%;
  display: flex;
  justify-content: center;
@@ -225,15 +218,26 @@
  max-height: 90%;
  max-width: 100%;
}
@media (max-width: 1030px) {
  #img-div {
    display: none;
  }
  #main-login{
    display: flex;
    justify-content: center;
  }
}
#div-login{
  margin-top: 5%;
  background-color: #fff;
  float: right;
  width: 100%;
  width: 40%;
  height: 80%;
  border-radius: 12px;
  min-width: 318px;
  min-height: 318px;
  min-height: 300px;
  box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
}
h2{
north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue
@@ -203,11 +203,11 @@
  customConfig: {
    storage: true
  },
  editConfig: {
  /*editConfig: {
    trigger: 'click',
    mode: 'row',
    showStatus: true
  },
  },*/
  columns:[
    {type:'expand',fixed:"left",slots: { content:'content' },width: 60},
    {title: t('basicData.operate'), width: 120, slots: { default: 'button_slot' },fixed:"left"},
@@ -302,24 +302,7 @@
let initTime = null
nextTick(() => {
  // 加载完成之后在绑定拖动事件
  initTime = setTimeout(() => {
    columnDrop2(xGrid.value)
  }, 500)
})
onUnmounted(() => {
  clearTimeout(initTime)
  if (sortable2) {
    try{
      sortable2.destroy()
    }
    catch (e){
    }
  }
})
</script>
north-glass-erp/src/main/resources/mapper/mm/FinishedGoodsInventory.xml
@@ -1124,7 +1124,8 @@
               od.building_number,
               d.creator,
               dd.delivery_detail_remakes,
               dd.create_time
               dd.create_time,
               dd.box_no
        from sd.delivery_detail dd
                 left join sd.delivery d on dd.delivery_id = d.delivery_id
                 left join sd.order_detail od on od.order_id = dd.order_id and dd.order_number = od.order_number