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