From 324a7b654f3ab96ad0274e96050fde4957749de3 Mon Sep 17 00:00:00 2001
From: xxyy <cathay_xy@163.com>
Date: 星期四, 06 三月 2025 09:12:51 +0800
Subject: [PATCH] 更新项目配置与功能扩展
---
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json | 4
.gitignore | 6
Code Management/WMS/WIDESEA_WMSClient/public/index.html | 135 ++
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 22
Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_DictionaryList.js | 22
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs | 11
Code Management/WMS/WIDESEA_WMSClient/config/buttons.js | 143 +++
Code Management/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js | 82 +
Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceProtocol.js | 58 +
Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Role1.js | 61 +
Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceProtocolDetail.js | 58 +
Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Role.js | 49 +
Code Management/WMS/WIDESEA_WMSClient/src/extension/basicinfo/router.js | 72 +
Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Dictionary.js | 65 +
Code Management/WMS/WIDESEA_WMSClient/vue.config.js | 53 +
Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceInfo.js | 87 +
Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_User.js | 86 +
Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/dispatchInfo.js | 58 +
Code Management/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/methods.js | 1684 +++++++++++++++++++++++++++++++++++
Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Log.js | 26
Code Management/WMS/WIDESEA_WMSClient/tests/unit/example.spec.js | 13
21 files changed, 2,777 insertions(+), 18 deletions(-)
diff --git a/.gitignore b/.gitignore
index 156aa67..8fb46bf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1681,3 +1681,9 @@
/Code Management/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/copilot-chat/bef6627e/sessions/e6132757-6fba-4638-b3d2-dfa6125d4331
/Code Management/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/copilot-chat/bef6627e/sessions/5f82e1ad-d4db-43ed-9379-9ed44357aea4
/Code Management/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/copilot-chat/bef6627e/sessions/20691605-d649-4ddc-93d5-94d62cef517b
+/Code Management/.vs/Code Management/CopilotIndices/17.13.433.20974/CodeChunks.db
+/Code Management/.vs/Code Management/CopilotIndices/17.13.433.20974/CodeChunks.db-shm
+/Code Management/.vs/Code Management/CopilotIndices/17.13.433.20974/CodeChunks.db-wal
+/Code Management/.vs/Code Management/CopilotIndices/17.13.433.20974/SemanticSymbols.db
+/Code Management/.vs/Code Management/CopilotIndices/17.13.433.20974/SemanticSymbols.db-shm
+/Code Management/.vs/Code Management/CopilotIndices/17.13.433.20974/SemanticSymbols.db-wal
diff --git a/Code Management/WMS/WIDESEA_WMSClient/config/buttons.js b/Code Management/WMS/WIDESEA_WMSClient/config/buttons.js
new file mode 100644
index 0000000..50c4dfd
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/config/buttons.js
@@ -0,0 +1,143 @@
+
+let buttons = [{
+ name: "鏌� 璇�",
+ value: 'Search',
+ icon: 'el-icon-search',
+ class: '',
+ type: 'primary',
+ onClick: function () {
+ this.search();
+ }
+},
+{
+ name: "鏂� 寤�",
+ icon: 'el-icon-plus',
+ value: 'Add',
+ class: '',
+ // plain:true,
+ type: 'success',
+ // plain:true,
+ onClick: function () {
+ this.add();
+ }
+},
+{
+ name: "缂� 杈�",
+ icon: 'el-icon-edit',
+ value: 'Update',
+ // plain:true,
+ class: '',
+ type: 'primary',
+ onClick: function () {
+ this.edit();
+ }
+},
+{
+ name: "浠诲姟瀹屾垚",
+ icon: '',
+ class: '',
+ value: 'TaskCompleted',
+ type: 'primary',
+ onClick: function () {
+ }
+},
+{
+ name: "浠诲姟鍙栨秷",
+ icon: '',
+ class: '',
+ value: 'TaskCancel',
+ type: 'danger',
+ onClick: function () {
+ }
+},
+{
+ name: "浠诲姟鎭㈠",
+ icon: '',
+ class: '',
+ value: 'TaskRecovery',
+ type: 'danger',
+ onClick: function () {
+ }
+},
+{
+ name: "鏌ョ湅瀹屾暣璺敱",
+ icon: '',
+ class: '',
+ value: 'ViewAllRouter',
+ type: 'info',
+ onClick: function () {
+ }
+},
+{
+ name: "璺敱閰嶇疆",
+ icon: '',
+ class: '',
+ value: 'AddRouters',
+ type: 'success',
+ onClick: function () {
+ }
+},
+{
+ name: "鍥炴粴鍒颁笂涓�姝�",
+ icon: '',
+ class: '',
+ value: 'Previous',
+ type: 'danger',
+ onClick: function () {
+ }
+},
+{
+ name: "璺宠浆鍒颁笅涓�姝�",
+ icon: '',
+ class: '',
+ value: 'Next',
+ type: 'warning',
+ onClick: function () {
+ }
+},
+{
+ name: "鍒� 闄�",
+ icon: 'el-icon-delete',
+ class: '',
+ value: 'Delete',
+ type: 'danger',
+ onClick: function () {
+ this.del();
+ }
+},
+{
+ name: "瀹� 鏍�",
+ icon: 'el-icon-check',
+ class: '',
+ value: 'Audit',
+ plain: true,
+ type: 'primary',
+ onClick: function () {
+ this.audit();
+ }
+},
+{
+ name: "瀵� 鍏�",
+ icon: 'el-icon-top',
+ class: '',
+ type: 'success',
+ plain: true,
+ value: 'Import',
+ onClick: function () {
+ this.import();
+ }
+},
+{
+ name: "瀵� 鍑�",
+ icon: 'el-icon-bottom',
+ type: 'success',
+ plain: true,
+ value: 'Export',
+ onClick: function () {
+ this.export();
+ }
+}
+
+]
+
+export default buttons
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSClient/public/index.html b/Code Management/WMS/WIDESEA_WMSClient/public/index.html
new file mode 100644
index 0000000..548664e
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/public/index.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html lang="">
+
+<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width,initial-scale=1.0">
+ <meta name="keywords" content=".netccore,dotnet core,vue,element,element plus,vue3" />
+ <meta name="description" content="" />
+ <link rel="icon" href="<%= BASE_URL %>wcslogo.png">
+ <title><%= htmlWebpackPlugin.options.title %></title>
+</head>
+
+<body>
+ <noscript>
+ <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
+ Please enable it to continue.</strong>
+ </noscript>
+ <div id="app"></div>
+ <!-- built files will be auto injected -->
+</body>
+
+</html>
+<style>
+ html,
+ body {
+ margin: 0;
+ padding: 0;
+ height: 100%;
+ width: 100%;
+ }
+
+ * {
+ box-sizing: border-box;
+ }
+
+ .el-loading {
+ z-index: 999999;
+ }
+
+ .el-table th {
+ display: table-cell !important;
+ }
+
+ .el-loading .el-loading-spinner {
+ padding: 7px;
+ background: #ececec;
+ width: 200px;
+ color: red;
+ left: 0;
+ right: 0;
+ margin: 0 auto;
+ border-radius: 5px;
+ border: 1px solid #a0a0a0;
+
+ }
+
+ h1,
+ h2,
+ h3,
+ h4 {
+ margin: 0;
+ }
+
+ .v-dialog {
+ border-radius: 5px;
+ top: 50%;
+ /* margin-top: -220px !important; */
+ }
+
+ .v-dialog .el-dialog__header {
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ padding: 0px 13px;
+ line-height: 53px;
+ border-bottom: 1px solid #e2e2e2;
+ height: 50px;
+ color: white;
+ font-weight: bold;
+ font-size: 14px;
+ background-image: linear-gradient(135deg, #0cd7bd 10%, #50c3f7);
+ }
+
+ .v-dialog .el-dialog__header .el-dialog__headerbtn {
+ top: 3px;
+ right: 0px;
+ }
+
+ .v-dialog .el-dialog__header .el-dialog__headerbtn .el-dialog__close {
+ font-size: 19px;
+ color: white;
+ }
+
+ .v-dialog .el-dialog__body {
+ padding: 0;
+ }
+
+ .el-message {
+ z-index: 3500 !important;
+ }
+
+ .v-date-range .el-input__inner {
+ padding: 0 15px 0 8px
+ }
+
+ .v-date-range .el-input__suffix .el-input__icon {
+ display: table-caption;
+ background: white;
+ margin: 1px;
+ height: auto;
+ margin-right: -4px;
+ height: 33px;
+ width: 19px;
+ font-size: 13px;
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ }
+
+ .v-date-range .el-icon-circle-check {
+ display: none !important;
+ }
+
+ .v-dialog .el-dialog__header {
+ margin-right: 0;
+ }
+
+ .el-button {
+ font-size: 12px !important;
+ }
+
+ .el-button--small {
+ padding: 0px 15px !important;
+ height: 32px;
+ }
+</style>
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/methods.js b/Code Management/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/methods.js
new file mode 100644
index 0000000..fa02eca
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/components/basic/ViewGrid/methods.js
@@ -0,0 +1,1684 @@
+import detailMethods from './detailMethods.js';
+//涓氬姟澶勭悊鏂规硶,鍏ㄩ儴鍙互鐢卞紑鍙戣鐩�
+import serviceFilter from './serviceFilter.js';
+let methods = {
+ //褰撴坊鍔犳墿灞曠粍浠秅ridHeader/gridBody/gridFooter鍙婃槑缁唌odelHeader/modelBody/modelFooter鏃讹紝
+ //濡傛灉瑕佽幏鍙栫埗绾ue瀵硅薄,璇蜂娇鐢ㄦ鏂规硶杩涜鍥炶皟
+ parentCall(fun) {
+ if (typeof fun != 'function') {
+ return console.log('鎵╁睍缁勪欢闇�瑕佷紶鍏ヤ竴涓洖璋冩柟娉曟墠鑳借幏鍙栫埗绾ue瀵硅薄');
+ }
+ fun(this);
+ },
+ getCurrentAction() {
+ if (this.currentReadonly) {
+ return '';
+ }
+ return '--' + (this.currentAction == this.const.ADD ? '鏂板' : '缂栬緫');
+ },
+ quickSearchKeyPress($event) {
+ //鏌ヨ瀛楁涓篿nput鏃讹紝鎸夊洖杞︽煡璇�
+ if ($event.keyCode == 13) {
+ if (this.searchFormFields[this.singleSearch.field] != '') {
+ this.search();
+ }
+ }
+ },
+ getButtons() {
+ //鐢熸垚ViewGrid鐣岄潰鐨勬搷浣滄寜閽強鏇村閫夐」
+ let searchIndex = this.buttons.findIndex((x) => {
+ return x.value == 'Search';
+ });
+ //娣诲姞楂樼骇鏌ヨ
+ let hasOneFormItem =
+ this.searchFormOptions.length == 1 &&
+ this.searchFormOptions[0].length == 1;
+ if (searchIndex != -1 && !hasOneFormItem) {
+ this.buttons.splice(searchIndex + 1, 0, {
+ icon: this.fiexdSearchForm ? 'el-icon-refresh-left' : 'el-icon-search',
+ name: this.fiexdSearchForm ? '閲嶇疆' : '楂樼骇鏌ヨ',
+ plain: true,
+ type: this.buttons[searchIndex].type,
+ onClick: () => {
+ if (this.fiexdSearchForm) {
+ return this.resetSearch();
+ }
+ this.searchBoxShow = !this.searchBoxShow;
+ }
+ });
+ }
+ if (hasOneFormItem) {
+ this.fiexdSearchForm = false;
+ }
+ this.maxBtnLength += searchIndex == -1 ? 0 : 1;
+ // if (this.buttons.length <= this.maxBtnLength) {
+ // return this.buttons;
+ // }
+ // let btns = this.buttons.slice(0, this.maxBtnLength);
+ // btns[this.maxBtnLength - 1].last = true;
+ // return btns;
+ },
+ extendBtn(btns, source) {
+ //btns鏉冮檺鎸夐挳锛宻ource涓烘墿灞曟寜閽�
+ if (!btns || !(source && source instanceof Array)) {
+ return;
+ }
+ //source閫氳繃鍦ㄨ〃鐨勬墿灞昷s鏂囦欢涓璪uttons瀵瑰簲鎸夐挳鐨勫睘鎬ndex鍐冲畾鎸夐挳鎵�鏀句綅缃�
+ source.forEach((x) => {
+ //閫氳繃鎸夐挳鐨処ndex灞炴�э紝鏀惧埌鎸囧畾鐨勪綅缃�
+ btns.splice(x.index == undefined ? btns.length : x.index, 0, x);
+ });
+ // if (this.extend.buttons.view) {
+ // this.extend.buttons.view.forEach((x) => {
+ // //閫氳繃鎸夐挳鐨処ndex灞炴�э紝鏀惧埌鎸囧畾鐨勪綅缃�
+ // this.buttons.splice(x.index == undefined ? this.buttons.length : x.index, 0, x);
+ // })
+ // }
+ },
+ initBoxButtons() {
+ //鍒濆鍖朧iewGird涓庡脊鍑烘/鏄庣粏琛ㄦ寜閽�
+ let path = this.$route.path;
+ //閫氳繃鑿滃崟鑾峰彇鐢ㄦ埛鎵�瀵瑰簲鑿滃崟闇�瑕佹樉绀虹殑鎸夐挳
+ let permissionButtons = this.permission.getButtons(
+ path,
+ null,
+ this.extend.tableAction,
+ this.table.name
+ );
+ if (permissionButtons) {
+ //2020.03.31娣诲姞娣辨嫹璐濇寜閽粍
+ permissionButtons.forEach((p) => {
+ let _obj = {};
+ for (const key in p) {
+ _obj[key] = p[key];
+ }
+ this.buttons.push(_obj);
+ });
+ // this.buttons.push(...permissionButtons);
+ }
+ if (!this.extend) {
+ this.extend = {};
+ }
+ if (!this.extend.buttons) {
+ this.extend.buttons = {};
+ }
+ //鏌ヨ鐣岄潰鎵╁睍鎸夐挳(鎵╁睍鎸夐挳鍙嚜琛岄�氳繃璁剧疆鎸夐挳鐨処ndex灞炴�ф樉绀哄埌鍏蜂綋浣嶇疆)
+ if (this.extend.buttons.view) {
+ this.extendBtn(this.buttons, this.extend.buttons.view);
+ }
+
+ //寮瑰嚭妗嗘寜閽�
+ let boxButtons = [];
+
+ let saveBtn = this.buttons.some((x) => {
+ if (
+ x.value &&
+ (x.value.toLowerCase() == this.const.ADD.toLowerCase() ||
+ x.value.toLowerCase() == this.const.EDIT.toLowerCase())
+ )
+ return true;
+ });
+ this.currentReadonly = !saveBtn;
+ //浠庤〃琛ㄦ牸鎿嶄綔鎸夐挳
+ let detailGridButtons = {
+ name: '鍒锋柊',
+ type: 'info',
+ icon: 'el-icon-refresh',
+ onClick() {
+ //濡傛灉鏄庣粏琛ㄥ綋鍓嶇殑鐘舵�佷负鏂板缓鏃讹紝绂佹鍒锋柊
+ if (this.currentAction == this.const.ADD) {
+ return;
+ }
+ this.refreshRow();
+ }
+ };
+
+ let importExcel = this.buttons.some((x) => {
+ if (x.value == this.const.IMPORT) return true;
+ });
+ //濡傛灉鏈夊鍏ユ潈闄�,鍒欓渶瑕佸垵濮嬪寲瀵煎叆缁勪欢
+ if (importExcel) {
+ this.upload.url = this.getUrl(this.const.IMPORT);
+ //瀹氫箟涓嬭浇妯℃澘鐨勬枃浠跺悕
+ this.upload.template.fileName = this.table.cnName;
+ //瀹氫箟涓嬭浇妯℃澘鐨刄rl璺緞
+ this.upload.template.url =
+ this.http.ipAddress + this.getUrl(this.const.DOWNLOADTEMPLATE, true);
+ }
+
+ // disabled
+ //濡傛灉褰撳墠瑙掕壊娌℃湁缂栬緫鎴栨柊寤哄姛鑳斤紝鏌ョ湅鏄庣粏鏃跺瓧娈佃缃叏閮ㄥ彧璇�
+ //鍙湁鏄庣粏琛紝灏嗘槑缁嗚〃涔熻缃负涓嶅彲鑳界紪杈戯紝骞朵笖涓嶆樉绀烘坊鍔犺銆佸垹闄よ
+ if (!saveBtn) {
+ this.editFormOptions.forEach((row) => {
+ row.forEach((x) => {
+ x.disabled = true;
+ });
+ });
+ //娌℃湁鏂板缂栬緫鏉冮檺鐨勶紝寮瑰嚭妗嗛兘璁剧疆涓哄彧璇�
+ this.detail.columns.forEach((column) => {
+ if (column.hasOwnProperty('edit')) {
+ column.readonly = true;
+ // row['edit'] = false;
+ }
+ });
+ //寮瑰嚭妗嗘墿灞曟寜閽�
+ this.extendBtn(boxButtons, this.extend.buttons.box);
+ //寮瑰嚭寮规鎸夐挳(2020.04.21),娌℃湁缂栬緫鎴栨柊寤烘潈闄愭椂锛屼篃鍙互閫氳繃buttons灞炴�ф坊鍔犺嚜瀹氫箟寮瑰嚭妗嗘寜閽�
+ this.boxButtons.push(...boxButtons);
+ this.detailOptions.buttons.push(detailGridButtons);
+ this.detailOptions.buttons.forEach((button) => {
+ if (!button.hasOwnProperty('hidden')) {
+ button.hidden = false;
+ }
+ });
+ //寮瑰嚭妗嗘墿灞曟槑缁嗚〃鎸夐挳
+ this.extendBtn(this.detailOptions.buttons, this.extend.buttons.detail);
+
+ return boxButtons;
+ }
+
+ this.detailOptions.edit = true;
+ boxButtons.push(
+ ...[
+ {
+ name: '淇� 瀛�',
+ icon: 'el-icon-check',
+ type: 'danger',
+ disabled: false,
+ value: 'save',
+ onClick() {
+ this.save();
+ }
+ }
+ // {
+ // name: '閲� 缃�',
+ // icon: 'el-icon-refresh-right',
+ // type: 'primary',
+ // disabled: false,
+ // onClick() {
+ // this.resetEdit();
+ // }
+ // }
+ ]
+ );
+ //浠庤〃琛ㄦ牸鎿嶄綔鎸夐挳
+ this.detailOptions.buttons.push(
+ ...[
+ {
+ name: '娣诲姞琛�',
+ icon: 'el-icon-plus',
+ type: 'primary',
+ hidden: false,
+ plain: true,
+ onClick() {
+ this.addRow();
+ }
+ },
+ {
+ type: 'danger',
+ plain: true,
+ name: '鍒犻櫎琛�',
+ hidden: false,
+ icon: 'el-icon-delete',
+ onClick() {
+ this.delRow();
+ }
+ },
+ //2022.01.08澧炲姞鏄庣粏琛ㄥ鍏ュ鍑哄姛鑳�
+ //娉ㄦ剰闇�瑕侀噸鍐欏悗鍙版槑缁嗚〃鎺ュ彛鐨勫鍏ヤ笌涓嬭浇妯℃澘銆佸鍑虹殑鏉冮檺,Sys_DictionaryListController.cs/SellOrderListController.cs
+ {
+ type: 'danger',
+ plain: true,
+ name: '瀵煎叆',
+ value: 'import',
+ hidden: false,
+ icon: 'el-icon-upload2',
+ onClick() {
+ this.upload.url = `${this.http.ipAddress}api/${this.detail.table}/${this.const.IMPORT}?table=1`;
+ this.upload.template.url = `${this.http.ipAddress}api/${this.detail.table}/${this.const.DOWNLOADTEMPLATE}`;
+ //瀹氫箟涓嬭浇妯℃澘鐨勬枃浠跺悕
+ this.upload.template.fileName = this.detail.cnName;
+ this.upload.excel = true;
+ }
+ },
+ {
+ type: 'danger',
+ plain: true,
+ name: '瀵煎嚭',
+ value: 'export',
+ icon: 'el-icon-download',
+ hidden: false,
+ onClick() {
+ this.export(true);
+ }
+ }
+ ]
+ );
+ this.detailOptions.buttons.forEach((button) => {
+ if (button.hasOwnProperty('hidden')) {
+ button.hidden = false;
+ }
+ });
+ //寮瑰嚭妗嗘墿灞曟寜閽�
+ this.extendBtn(boxButtons, this.extend.buttons.box);
+
+ //寮瑰嚭妗嗘墿灞曟槑缁嗚〃鎸夐挳
+ this.detailOptions.buttons.push(detailGridButtons);
+ this.extendBtn(this.detailOptions.buttons, this.extend.buttons.detail);
+
+ //寮瑰嚭寮规鎸夐挳
+ this.boxButtons.push(...boxButtons);
+ },
+ onClick(click) {
+ click.apply(this);
+ },
+ changeDropdown(btnName, v1) {
+ let button = this.buttons.filter((x) => {
+ return x.name == btnName;
+ });
+ if (button && button.length > 0) {
+ button[0].onClick.apply(this);
+ }
+ },
+ emptyValue(value) {
+ if (typeof value == 'string' && value.trim() === '') {
+ return true;
+ }
+ if (value instanceof Array && !value.length) {
+ return true;
+ }
+ return value === null || value === undefined || value === '';
+ },
+ getSearchParameters() {
+ //鑾峰彇鏌ヨ鍙傛暟
+ // 2020.09.11澧炲姞鍥哄畾鏌ヨ琛ㄥ崟,濡傛灉璁剧疆鍥哄畾浜嗘煡璇㈣〃鍗曪紝鐐瑰嚮鏌ヨ鏃讹紝涓嶅啀鍏抽棴
+ if (!this.fiexdSearchForm) {
+ this.searchBoxShow = false;
+ }
+
+ let query = { wheres: [] };
+ for (const key in this.searchFormFields) {
+ let value = this.searchFormFields[key];
+ if (this.emptyValue(value)) continue;
+
+ if (typeof value == 'number') {
+ value = value + '';
+ }
+ let displayType = this.getSearchItem(key);
+
+ //鑱旂骇鍙繚鐣欓�変腑鑺傜偣鐨勬渶鍚庝竴涓��
+ if (displayType == 'cascader') {
+ //鏌ヨ涓嬮潰鎵�鏈夌殑瀛愯妭鐐癸紝濡傦細閫変腑鐨勬槸鐖惰妭鐐癸紝搴旇鏌ヨ涓嬮潰鎵�鏈夌殑鑺傜偣鏁版嵁--寰呭畬
+ value = value.length ? value[value.length - 1] + '' : '';
+ }
+ //2021.05.02澧炲姞鍖洪棿鏌ヨ
+ if (
+ typeof value == 'string' ||
+ ['date', 'datetime', 'range'].indexOf(displayType) == -1
+ ) {
+ query.wheres.push({
+ name: key,
+ value:
+ typeof value == 'string' ? (value + '').trim() : value.join(','),
+ displayType: displayType
+ });
+ continue;
+ }
+ for (let index = 0; index < value.length; index++) {
+ if (!this.emptyValue(value[index])) {
+ query.wheres.push({
+ name: key,
+ value: (value[index] + '').trim(),
+ displayType: (() => {
+ if (['date', 'datetime', 'range'].indexOf(displayType) != -1) {
+ return index ? 'lessorequal' : 'thanorequal';
+ }
+ return displayType;
+ })()
+ });
+ }
+ }
+ }
+ return query;
+ },
+ search() {
+ //鏌ヨ
+ // let query = this.getSearchParameters();
+ // this.$refs.table.load(query, true);
+ this.$refs.table.load(null, true);
+ },
+ loadTableBefore(param, callBack) {
+ //鏌ヨ鍓嶈缃煡璇㈡潯浠跺強鍒嗛〉淇℃伅
+ let query = this.getSearchParameters();
+ if (query) {
+ param = Object.assign(param, query);
+ }
+
+ if (this.$route.query.viewflow && this.$route.query.id) {
+ param.wheres.push({
+ name: this.table.key,
+ value: this.$route.query.id
+ });
+ }
+ // if (this.isViewFlow() && data && data.length) {
+ // let query = JSON.parse(JSON.stringify(this.$route.query));
+ // query.viewflow = 0;
+ // this.$router.replace({ path: this.$route.path, query: query });
+ // this.$nextTick(() => {
+ // this.getWorkFlowSteps(data[0]);
+ // });
+ // }
+ let status = this.searchBefore(param);
+ callBack(status);
+ },
+
+ loadTableAfter(data, callBack, result) {
+ //鏌ヨ鍚�
+ //2020.10.30澧炲姞鏌ヨ鍚庤繑鍥炴墍鏈夌殑鏌ヨ淇℃伅
+ let status = this.searchAfter(data, result);
+ callBack(status);
+ //鑷姩寮瑰嚭妗嗗鎵硅鎯�
+ },
+ loadDetailTableBefore(param, callBack) {
+ //鏄庣粏鏌ヨ鍓�
+ //鏂板缓鏃剁姝㈠姞杞芥槑缁�
+ if (this.currentAction == this.const.ADD) {
+ callBack(false);
+ return false;
+ }
+ let status = this.searchDetailBefore(param);
+ callBack(status);
+ },
+ loadDetailTableAfter(data, callBack) {
+ //鏄庣粏鏌ヨ鍚�
+ let status = this.searchDetailAfter(data);
+ callBack(status);
+ },
+ getSearchItem(field) {
+ //鑾峰彇鏌ヨ鐨勫弬鏁�
+ let data;
+ for (let index = 0; index < this.searchFormOptions.length; index++) {
+ if (data) return data.type;
+ const item = this.searchFormOptions[index];
+ data = item.find((x) => {
+ return x.field == field;
+ });
+ }
+
+ return (data || {}).type;
+ },
+ resetSearch() {
+ //閲嶇疆鏌ヨ瀵硅薄
+ this.resetSearchForm();
+ //2020.10.17澧炲姞閲嶇疆鍚庢柟娉�
+ this.resetSearchFormAfter && this.resetSearchFormAfter();
+ },
+ resetEdit() {
+ //閲嶇疆缂栬緫鐨勬暟鎹�
+ let isEdit = this.currentAction != this.const.ADD;
+ //閲嶇疆涔嬪墠
+ if (!this[isEdit ? 'resetUpdateFormBefore' : 'resetAddFormBefore']()) {
+ return;
+ }
+ let objKey = {};
+ //缂栬緫鐘舵�佷笅,涓嶉渶瑕侀噸缃富閿�,鍒涘缓鏃堕棿鍒涘缓浜�
+ if (isEdit) {
+ objKey[this.table.key] = this.editFormFields[this.table.key];
+ }
+ this.resetEditForm(objKey);
+ //閲嶇疆涔嬪悗
+
+ if (!this[isEdit ? 'resetUpdateFormAfter' : 'resetAddFormAfter']()) {
+ return;
+ }
+ },
+ resetSearchForm(sourceObj) {
+ //閲嶇疆鏌ヨ琛�
+ this.resetForm('searchForm', sourceObj);
+ },
+ resetEditForm(sourceObj) {
+ if (this.hasDetail && this.$refs.detail) {
+ // this.$refs.detail.rowData.splice(0);
+ this.$refs.detail.reset();
+ }
+ this.resetForm('form', sourceObj);
+ if (this.$refs.form && this.$refs.form.$refs.volform) {
+ setTimeout(() => {
+ this.$refs.form.$refs.volform.clearValidate();
+ }, 100);
+ }
+ },
+ getKeyValueType(formData, isEditForm) {
+ try {
+ let keyLeft = (isEditForm ? 'e' : 's') + '_b_';
+ formData.forEach((item) => {
+ item.forEach((x) => {
+ if (this.keyValueType.hasOwnProperty(keyLeft + x.field)) {
+ return true;
+ }
+ let data;
+ if (x.type == 'switch') {
+ this.keyValueType[x.field] = 1;
+ } else if (x.bind && x.bind.data) {
+ data = x.bind.data;
+ } else if (x.data) {
+ if (x.data instanceof Array) {
+ data = x.data;
+ } else if (x.data.data && x.data.data instanceof Array) {
+ data = x.data.data;
+ }
+ }
+ if (
+ data &&
+ data.length > 0 &&
+ !this.keyValueType.hasOwnProperty(x.field)
+ ) {
+ this.keyValueType[x.field] = data[0].key;
+ this.keyValueType[keyLeft + x.field] = x.type;
+ }
+ });
+ });
+ } catch (error) {
+ console.log(error.message);
+ }
+ },
+ resetForm(formName, sourceObj) {
+ // return;
+ //閲嶇疆琛ㄥ崟鏁版嵁
+ if (this.$refs[formName]) {
+ this.$refs[formName].reset();
+ }
+
+ if (!sourceObj) return;
+ let form, keyLeft;
+ if (formName == 'searchForm') {
+ form = this.searchFormFields;
+ keyLeft = 's' + '_b_';
+ } else {
+ form = this.editFormFields;
+ keyLeft = 'e' + '_b_';
+ }
+ //鑾峰彇鏁版嵁婧愮殑data绫诲瀷锛屽惁鍒欏鏋滄暟鎹簮data鐨刱ey鏄暟瀛楋紝閲嶇疆鐨勫�兼槸瀛楃涓插氨鏃犳硶缁戝畾鍊�
+ if (!this.keyValueType._dinit) {
+ this.getKeyValueType(this.editFormOptions, true);
+ this.getKeyValueType(this.searchFormOptions, false);
+ this.keyValueType._dinit = true;
+ }
+ var _cascaderParentTree;
+ for (const key in form) {
+ if (sourceObj.hasOwnProperty(key)) {
+ let newVal = sourceObj[key];
+ let kv_type = this.keyValueType[keyLeft + key];
+
+ if (
+ kv_type == 'selectList' ||
+ kv_type == 'checkbox' ||
+ kv_type == 'cascader' ||
+ kv_type == 'treeSelect'
+ ) {
+ // 2020.05.31澧炲姞iview缁勪欢Cascader
+ // 2020.11.01澧炲姞iview缁勪欢Cascader琛ㄥ崟閲嶇疆鏃舵煡璇㈡墍鏈夌殑鐖惰妭鐐�
+ if (kv_type == 'cascader' || kv_type == 'treeSelect') {
+ var treeDic = this.dicKeys.find((dic) => {
+ return dic.fileds && dic.fileds.indexOf(key) != -1;
+ });
+
+ if (treeDic && treeDic.orginData && treeDic.orginData.length) {
+ let keyIsNum = typeof treeDic.orginData[0].id == 'number';
+
+ if (kv_type == 'cascader') {
+ newVal = keyIsNum ? newVal * 1 || 0 : newVal + '';
+ if (kv_type == 'cascader') {
+ _cascaderParentTree = this.base.getTreeAllParent(
+ newVal,
+ treeDic.orginData
+ );
+ if (_cascaderParentTree) {
+ newVal = _cascaderParentTree.map((x) => {
+ return x.id;
+ });
+ }
+ }
+ } else {
+ if (newVal === null || newVal === undefined) {
+ newVal = [];
+ } else if (typeof newVal == 'string') {
+ newVal = newVal.split(',');
+ }
+ if (keyIsNum) {
+ if (Array.isArray(newVal)) {
+ newVal = newVal.map((x) => {
+ return x * 1 || 0;
+ });
+ }
+ } else if (typeof newVal == 'number') {
+ newVal = [newVal + ''];
+ }
+ }
+ } else {
+ newVal = [newVal];
+ }
+ } else if (
+ newVal != '' &&
+ newVal != undefined &&
+ typeof newVal == 'string'
+ ) {
+ newVal = newVal.split(',');
+ } else if (kv_type == 'checkbox') {
+ newVal = [];
+ }
+ } else if (
+ this.keyValueType.hasOwnProperty(key) &&
+ typeof this.keyValueType[key] == 'number' &&
+ newVal * 1 == newVal
+ ) {
+ newVal = newVal * 1;
+ } else {
+ if (newVal == null || newVal == undefined) {
+ newVal = '';
+ } else if (this.numberFields.indexOf(key) != -1) {
+ newVal = newVal * 1 || 0;
+ } else {
+ newVal += '';
+ }
+ }
+ if (newVal instanceof Array) {
+ if (form[key]) {
+ form[key] = [];
+ }
+ form[key] = newVal;
+ } else {
+ form[key] = newVal;
+ }
+ } else {
+ form[key] = form[key] instanceof Array ? [] : '';
+ }
+ }
+ },
+ onBtnClick(param) {
+ this[param.method](param.data);
+ },
+ refresh() {
+ //鍒锋柊
+ this.search();
+ // this.$refs.table.load();
+ },
+ saveBefore(formData) {
+ return true;
+ },
+ saveAfter(formData, result) {
+ return true;
+ },
+ save() {
+ //鏂板鎴栫紪杈戞椂淇濆瓨
+ // if (!this.$refs.form.validate()) return;
+ this.$refs.form.validate((result) => {
+ if (result) {
+ this.saveExecute();
+ }
+ });
+ },
+ async saveExecute() {
+ let editFormFields = {};
+ //涓婁紶鏂囦欢浠ラ�楀彿闅斿紑
+ for (const key in this.editFormFields) {
+ if (
+ this.uploadfiled &&
+ this.uploadfiled.length > 0 &&
+ this.uploadfiled.indexOf(key) != -1 &&
+ this.editFormFields[key] instanceof Array
+ ) {
+ let allPath = this.editFormFields[key].map((x) => {
+ return x.path;
+ });
+ editFormFields[key] = allPath.join(',');
+ } else if (typeof this.editFormFields[key] == 'function') {
+ try {
+ editFormFields[key] = this.editFormFields[key]();
+ } catch (error) { }
+ } else {
+ //2021.05.30淇涓嬫媺妗嗘竻闄ゆ暟鎹悗鍚庡彴涓嶈兘淇濆瓨鐨勯棶棰�
+ if (
+ this.editFormFields[key] === undefined &&
+ this.dicKeys.some((x) => {
+ return x.fileds && x.fileds.indexOf(key) != -1;
+ })
+ ) {
+ editFormFields[key] = null;
+ } else {
+ editFormFields[key] = this.editFormFields[key];
+ }
+ }
+ }
+ //灏嗘暟缁勮浆鎹㈡垚string
+ //2020.11.01澧炲姞绾ц仈澶勭悊
+ for (const key in editFormFields) {
+ if (editFormFields[key] instanceof Array) {
+ var iscascader = this.dicKeys.some((x) => {
+ return (
+ x.type == 'cascader' && x.fileds && x.fileds.indexOf(key) != -1
+ );
+ });
+ if (iscascader && editFormFields[key].length) {
+ editFormFields[key] =
+ editFormFields[key][editFormFields[key].length - 1];
+ } else {
+ editFormFields[key] = editFormFields[key].join(',');
+ }
+ }
+ }
+
+ let formData = {
+ mainData: editFormFields,
+ detailData: null,
+ delKeys: null
+ };
+
+ //鑾峰彇鏄庣粏鏁版嵁(鍓嶅彴鏁版嵁鏄庣粏鏈仛鏍¢獙锛屽緟瀹�.鍚庡彴宸茬粡鏍¢獙)
+ if (this.hasDetail) {
+ formData.detailData = this.$refs.detail.rowData;
+ let _fields = this.detail.columns
+ .filter((c) => {
+ return (
+ c.type == 'selectList' || (c.edit && c.edit.type == 'selectList')
+ );
+ })
+ .map((c) => {
+ return c.field;
+ });
+ //2022.06.20澧炲姞淇濆瓨鏃跺鏄庣粏琛ㄤ笅鎷夋澶氶�夌殑鍒ゆ柇
+ if (_fields.length) {
+ formData.detailData = JSON.parse(JSON.stringify(formData.detailData));
+ formData.detailData.forEach((row) => {
+ for (let index = 0; index < _fields.length; index++) {
+ const _field = _fields[index];
+ if (Array.isArray(row[_field])) {
+ row[_field] = row[_field].join(',');
+ }
+ }
+ });
+ }
+ }
+ if (this.detailOptions.delKeys.length > 0) {
+ formData.delKeys = this.detailOptions.delKeys;
+ }
+ //淇濆瓨鍓嶆嫤鎴�
+ let _currentIsAdd = this.currentAction == this.const.ADD;
+ if (_currentIsAdd) {
+ //2020.12.06澧炲姞鏂板缓鍓嶅紓姝ュ鐞嗘柟娉�
+ //2021.08.16淇寮傛璇硶鍐欓敊鐨勯棶棰�
+ if (!this.addBefore(formData) || !(await this.addBeforeAsync(formData)))
+ return;
+ } else {
+ //2020.12.06澧炲姞淇敼鍓嶅紓姝ュ鐞嗘柟娉�
+ if (
+ !this.updateBefore(formData) ||
+ !(await this.updateBeforeAsync(formData))
+ )
+ return;
+ }
+ let url = this.getUrl(this.currentAction);
+ this.http.post(url, formData, true).then((x) => {
+ //淇濆瓨鍚�
+ if (_currentIsAdd) {
+ if (!this.addAfter(x)) return;
+ //杩炵画娣诲姞
+ if (this.continueAdd && x.status) {
+ this.$success(x.message);
+ //鏂板缓
+ this.currentAction = this.const.ADD;
+ this.currentRow = {};
+ this.resetAdd();
+ this.refresh();
+ return;
+ }
+ } else {
+ if (!this.updateAfter(x)) return;
+ }
+ if (!x.status) return this.$error(x.message);
+ this.$success(x.message || '鎿嶄綔鎴愬姛');
+ //濡傛灉淇濆瓨鎴愬姛鍚庨渶瑕佸叧闂紪杈戞锛岀洿鎺ヨ繑鍥炰笉澶勭悊鍚庨潰
+ if (this.boxOptions.saveClose) {
+ this.boxModel = false;
+ //2020.12.27濡傛灉鏄紪杈戜繚瀛樺悗涓嶉噸缃垎椤甸〉鏁帮紝鍒锋柊椤甸潰鏃惰繕鏄樉绀哄綋鍓嶉〉鐨勬暟鎹�
+ this.$refs.table.load(null, _currentIsAdd);
+ //this.refresh();
+ return;
+ }
+ let resultRow;
+ if (typeof x.data == 'string' && x.data != '') {
+ resultRow = JSON.parse(x.data);
+ } else {
+ resultRow = x.data;
+ }
+
+ if (this.currentAction == this.const.ADD) {
+ // this.currentRow=x.data;
+ this.editFormFields[this.table.key] = '';
+ this.currentAction = this.const.EDIT;
+ this.currentRow = resultRow.data;
+ }
+ this.resetEditForm(resultRow.data);
+ // console.log(resultRow);
+ if (this.hasDetail) {
+ this.detailOptions.delKeys = [];
+ if (resultRow.list) {
+ this.$refs.detail.rowData.push(...resultRow.list);
+ }
+ }
+ this.$refs.table.load(null, _currentIsAdd);
+ // this.refresh();
+ });
+ },
+ del(rows) {
+ if (rows) {
+ if (!(rows instanceof Array)) {
+ rows = [rows];
+ }
+ } else {
+ rows = this.$refs.table.getSelected();
+ }
+ //鍒犻櫎鏁版嵁
+
+ if (!rows || rows.length == 0) return this.$error('璇烽�夋嫨瑕佸垹闄ょ殑琛�!');
+ let delKeys = rows.map((x) => {
+ return x[this.table.key];
+ });
+ if (!delKeys || delKeys.length == 0)
+ return this.$error('娌℃湁鑾峰彇瑕佸垹闄ょ殑琛屾暟鎹�!');
+ //鍒犻櫎鍓�
+ if (!this.delBefore(delKeys, rows)) {
+ return;
+ }
+ let tigger = false;
+ this.$confirm('纭瑕佸垹闄ら�夋嫨鐨勬暟鎹悧?', '璀﹀憡', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning',
+ center: true
+ }).then(() => {
+ if (tigger) return;
+ tigger = true;
+ let url = this.getUrl(this.const.DEL);
+ this.http.post(url, delKeys, '姝e湪鍒犻櫎鏁版嵁....').then((x) => {
+ if (!x.status) return this.$error(x.message);
+ this.$success("鍒犻櫎鎴愬姛");
+ //鍒犻櫎鍚�
+ if (!this.delAfter(x)) {
+ return;
+ }
+ this.refresh();
+ });
+ });
+ },
+ async modelOpenBeforeAsync(row) {
+ return true;
+ },
+ async initBox() {
+ //2022.01.08澧炲姞鏂板缓鏃堕殣钘忔槑缁嗚〃瀵煎嚭鍔熻兘
+ this.detailOptions.buttons.forEach((x) => {
+ if (x.value == 'export') {
+ x.hidden = this.currentAction == 'Add';
+ }
+ });
+ //鍒濆鍖栨柊寤恒�佺紪杈戠殑寮瑰嚭妗�
+ if (!(await this.modelOpenBeforeAsync(this.currentRow))) return false;
+ this.modelOpenBefore(this.currentRow);
+ if (!this.boxInit) {
+ this.boxInit = true;
+ this.boxModel = true;
+ // this.detailUrl = this.url;
+ }
+ return true;
+ },
+ setEditForm(row) {
+ // if (this.remoteColumns.length == 0 || !rows || rows.length == 0) return;
+ let remoteColumns = this.$refs.table.remoteColumns;
+ remoteColumns.forEach((column) => {
+ this.editFormOptions.forEach((option) => {
+ option.forEach((x) => {
+ if (x.field == column.field) {
+ x.data.data = Object.assign([], x.data, column.bind.data);
+ }
+ });
+ });
+ });
+ this.editFormFields;
+ //閲嶇疆缂栬緫琛ㄥ崟鏁版嵁
+ this.editFormFields[this.table.key] = row[this.table.key];
+
+ this.resetEditForm(row);
+ this.currentAction = this.const.EDIT;
+ this.boxModel = true;
+ },
+ async linkData(row, column) {
+ this.boxOptions.title = this.table.cnName + '(缂栬緫)';
+ //鐐瑰嚮table鍗曞厓鏍煎揩鎹烽摼鎺ユ樉绀虹紪杈戞暟鎹�
+ this.currentAction = this.const.EDIT;
+ this.currentRow = row;
+ if (!(await this.initBox())) return;
+ this.resetDetailTable(row);
+ this.setEditForm(row);
+ this.setContinueAdd(false);
+ //璁剧疆杩滅▼鏌ヨ琛ㄥ崟鐨勯粯璁ey/value
+ this.getRemoteFormDefaultKeyValue();
+ //鐐瑰嚮缂栬緫鎸夐挳寮瑰嚭妗嗗悗锛屽彲浠ュ湪姝ゅ鍐欓�昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ this.modelOpenProcess(row);
+ },
+ setContinueAdd(isAdd) {
+ if (!this.continueAdd) return;
+ var _button = this.boxButtons.find((x) => {
+ return x.value == 'save';
+ });
+ if (_button) {
+ _button.name = isAdd ? this.continueAddName : '淇� 瀛�';
+ }
+ },
+ resetAdd() {
+ if (this.hasDetail) {
+ this.$refs.detail &&
+ // this.$refs.detail.rowData &&
+ this.$refs.detail.reset();
+ }
+ let obj = {};
+ //濡傛灉鏈塻witch鏍囩锛岄粯璁ら兘璁剧疆涓哄惁
+ this.editFormOptions.forEach((x) => {
+ x.forEach((item) => {
+ if (item.type == 'switch') {
+ obj[item.field] = 0;
+ }
+ });
+ });
+ this.resetEditForm(obj);
+ },
+ async add() {
+ this.boxOptions.title = this.table.cnName + '(鏂板缓)';
+ //鏂板缓
+ this.currentAction = this.const.ADD;
+ this.currentRow = {};
+ if (!(await this.initBox())) return;
+
+ this.resetAdd();
+ this.setContinueAdd(true);
+ // this.resetEditForm();
+ this.boxModel = true;
+ //鐐瑰嚮鏂板缓鎸夐挳寮瑰嚭妗嗗悗锛屽彲浠ュ湪姝ゅ鍐欓�昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ this.modelOpenProcess();
+ // this.modelOpenAfter();
+ },
+ async edit(rows) {
+ this.boxOptions.title = '缂栬緫';
+ //缂栬緫
+ this.currentAction = this.const.EDIT;
+ if (rows) {
+ if (!(rows instanceof Array)) {
+ rows = [rows];
+ }
+ } else {
+ rows = this.$refs.table.getSelected();
+ }
+ if (rows.length == 0) {
+ return this.$error('璇烽�夋嫨瑕佺紪杈戠殑琛�!');
+ }
+ if (rows.length != 1) {
+ return this.$error('鍙兘閫夋嫨涓�琛屾暟鎹繘琛岀紪杈�!');
+ }
+ //璁板綍褰撳墠缂栬緫鐨勮
+ this.currentRow = rows[0];
+ //鍒濆鍖栧脊鍑烘
+ if (!(await this.initBox())) return;
+ this.setContinueAdd(false);
+ //閲嶇疆琛ㄥ崟
+ this.resetDetailTable();
+
+ //璁剧疆褰撳墠鐨勬暟鎹埌琛ㄥ崟涓�
+ this.setEditForm(rows[0]);
+ //璁剧疆杩滅▼鏌ヨ琛ㄥ崟鐨勯粯璁ey/value
+ this.getRemoteFormDefaultKeyValue();
+ //鐐瑰嚮缂栬緫鎸夐挳寮瑰嚭妗嗗悗锛屽彲浠ュ湪姝ゅ鍐欓�昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ this.modelOpenProcess(rows[0]);
+ // this.modelOpenAfter(rows[0]);
+ },
+ getRemoteFormDefaultKeyValue() {
+ //璁剧疆琛ㄥ崟杩滅▼鏁版嵁婧愮殑榛樿key.value
+ if (this.currentAction != this.const.EDIT || this.remoteKeys.length == 0)
+ return;
+ this.editFormOptions.forEach((x, xIndex) => {
+ x.forEach((item, yIndex) => {
+ if (item.remote) {
+ let column = this.columns.find((x) => {
+ return x.bind && x.bind.key == item.dataKey;
+ });
+ if (!column) return;
+ let key = this.currentRow[item.field];
+ let obj = column.bind.data.find((x) => {
+ return x.key == key;
+ });
+ // obj ? obj.value : key濡傛灉娌℃湁鏌ュ埌鏁版嵁婧愶紝鐩存帴浣跨敤鍘熸暟鎹�
+ item.data = [{ key: key, value: obj ? obj.value : key }];
+ this.editFormOptions[xIndex].splice(yIndex, 1, item);
+ // this.$set(item, 'data', [{ key: key + '', value: obj.value }])
+ // item.data = [{ key: key + '', value: obj.value }];
+ }
+ });
+ });
+ },
+ modelOpenProcess(row) {
+ this.$nextTick(() => {
+ this.modelOpenAfter(row);
+ });
+ return;
+ // if (!this.$refs.form) {
+ // let timeOut = setTimeout(x => {
+ // this.modelOpenAfter(row);
+ // }, 500)
+ // return;
+ // }
+ // this.modelOpenAfter(row);
+ },
+ import() {
+ //瀵煎叆(涓婁紶excel),寮瑰嚭瀵煎叆缁勪欢UploadExcel.vue
+ this.upload.excel = true;
+ this.$refs.upload_excel && this.$refs.upload_excel.reset();
+ },
+ download(url, fileName) {
+ //涓嬭浇瀵煎嚭鐨勬枃浠�
+ let xmlResquest = new XMLHttpRequest();
+ xmlResquest.open('GET', url, true);
+ xmlResquest.setRequestHeader('Content-type', 'application/json');
+ xmlResquest.setRequestHeader(
+ 'Authorization',
+ this.$store.getters.getToken()
+ );
+ let elink = this.$refs.export;
+ xmlResquest.responseType = 'blob';
+ xmlResquest.onload = function (oEvent) {
+ if (xmlResquest.status != 200) {
+ this.$error('涓嬭浇鏂囦欢鍑洪敊浜�..');
+ return;
+ }
+ let content = xmlResquest.response;
+ // let elink = this.$refs.export;//document.createElement("a");
+ elink.download = fileName; //+".xlsx";
+ // elink.style.display = "none";
+ let blob = new Blob([content]);
+ elink.href = URL.createObjectURL(blob);
+ // document.body.appendChild(elink);
+ elink.click();
+ // document.body.removeChild(elink);
+ };
+ xmlResquest.send();
+ },
+ getFileName(isDetail) {
+ //2021.01.08澧炲姞瀵煎嚭excel鏃惰嚜瀹氫箟鏂囦欢鍚�
+ if (isDetail) {
+ return this.detail.cnName + '.xlsx';
+ }
+ return this.table.cnName + '.xlsx';
+ },
+ export(isDetail) {
+ //瀵煎嚭
+ let url, query, param;
+ if (isDetail) {
+ //鏄庣粏琛ㄥ鍑烘椂濡傛灉鏄柊寤虹姸鎬侊紝绂佹瀵煎嚭
+ if (this.currentAction == 'Add') {
+ return;
+ }
+ url = `api/${this.detail.table}/${this.const.EXPORT}`;
+ param = {
+ wheres: [
+ { name: this.table.key, value: this.editFormFields[this.table.key] }
+ ]
+ };
+ } else {
+ //涓昏〃瀵煎嚭
+ url = this.getUrl(this.const.EXPORT);
+ query = this.getSearchParameters();
+ param = { order: this.pagination.order, wheres: query.wheres || [] };
+ }
+ //2020.06.25澧炲姞瀵煎嚭鍓嶅鐞�
+ if (!isDetail && !this.exportBefore(param)) {
+ return;
+ }
+
+ if (param.wheres && typeof param.wheres == 'object') {
+ param.wheres = JSON.stringify(param.wheres);
+ }
+ let $http = this.http;
+ //2022.09.26澧炲姞鑷畾涔夊鍑烘枃浠跺悕
+ let fileName = this.downloadFileName || this.getFileName(isDetail);
+ //2021.01.08浼樺寲瀵煎嚭鍔熻兘
+ $http
+ .post(url, param, '姝e湪瀵煎嚭鏁版嵁....', { responseType: 'blob' })
+ .then((content) => {
+ const blob = new Blob([content]);
+ if ('download' in document.createElement('a')) {
+ // 闈濱E涓嬭浇
+ const elink = document.createElement('a');
+ elink.download = fileName;
+ elink.style.display = 'none';
+ elink.href = URL.createObjectURL(blob);
+ document.body.appendChild(elink);
+ elink.click();
+ URL.revokeObjectURL(elink.href);
+ document.body.removeChild(elink);
+ } else {
+ // IE10+涓嬭浇
+ navigator.msSaveBlob(blob, fileName);
+ }
+ });
+ //.then(result => {
+ // if (!result.status) {
+ // return this.$error(result.message);
+ // }
+ // let path = this.getUrl(this.const.DOWNLOAD);
+ // path = path[0] == "/" ? path.substring(1) : path;
+ // this.download(
+ // $http.ipAddress + path + "?path=" + result.data,
+ // this.table.cnName + ".xlsx" // filePath
+ // );
+ /// window.open($http.ipAddress + path + "?fileName=" + filePath, "_self");
+ // });
+ },
+ getSelectRows() {
+ //鑾峰彇閫変腑鐨勮
+ return this.$refs.table.getSelected();
+ },
+ getDetailSelectRows() {
+ //鎴栬幏鍙栨槑缁嗛�変腑鐨勮
+ if (!this.$refs.detail) {
+ return [];
+ }
+ return this.$refs.detail.getSelected();
+ },
+ audit() {
+ //瀹℃牳寮瑰嚭妗�
+ let rows = this.$refs.table.getSelected();
+ if (rows.length == 0) return this.$error('璇烽�夋嫨瑕佸鏍哥殑琛�!');
+ let auditStatus = Object.keys(rows[0]).find(x => { return x.toLowerCase() === 'auditstatus' });
+ if (!auditStatus) {
+ return this.$message.error(`琛ㄥ繀椤诲寘鎷鏍稿瓧娈点�怉uditStatus銆�,骞朵笖鏄痠nt绫诲瀷`)
+ }
+ // let checkStatus = rows.every((x) => {
+ // return this.$global.audit.status.some(c => { return c === x[auditStatus] || !x[auditStatus] })
+ // });
+ // if (!checkStatus) return this.$error('鍙兘閫夋嫨寰呭鎵规垨瀹℃牳涓殑鏁版嵁!');
+ this.$refs.audit.open(rows);
+ },
+ saveAudit(params, rows, callback) {
+
+ //淇濆瓨瀹℃牳
+ let keys = rows.map(x => { return x[this.table.key] });
+ if (!this.auditBefore(keys, rows)) {
+ return;
+ }
+ let url = `${this.getUrl(this.const.AUDIT)}?auditReason=${params.reason}&auditStatus=${params.value}`
+ this.http.post(url, keys, '瀹℃牳涓�....').then((x) => {
+ if (!this.auditAfter(x, keys)) {
+ return;
+ }
+ if (!x.status) return this.$error(x.message);
+
+ callback && callback(x);
+ this.$success(x.message);
+ this.refresh();
+ });
+ },
+ viewModelCancel() {
+ //鏌ョ湅琛ㄧ粨鏋�
+ this.viewModel = false;
+ },
+ initFormOptions(formOptions, keys, formFields, isEdit) {
+ //鍒濆鍖栨煡璇€�佺紪杈戝璞$殑涓嬫媺妗嗘暟鎹簮銆佸浘鐗囦笂浼犻摼鎺ュ湴鍧�
+ //let defaultOption = { key: "", value: "璇烽�夋嫨" };
+ //鏈変笂浼犵殑瀛楁
+ //2020.05.03鏂板
+ //缂栬緫鏁版嵁婧愮殑绫诲瀷
+ formOptions.forEach((item) => {
+ item.forEach((d) => {
+ if (d.type == 'number') {
+ //2022.08.22浼樺寲琛ㄥ崟绫诲瀷涓簄umber鏃剁殑榛樿鍊�
+ if (formFields[d.field] === '') {
+ formFields[d.field] = undefined;
+ }
+ this.numberFields.push(d.field);
+ }
+ if (
+ d.type == 'img' ||
+ d.type == 'excel' ||
+ d.type == 'file' ||
+ d.columnType == 'img'
+ ) {
+ d.url = this.http.ipAddress + 'api' + this.table.url + 'Upload';
+ this.uploadfiled.push(d.field);
+ }
+ if (!d.dataKey) return true;
+ //2022.02.20寮哄埗寮�鍚仈绾у彲浠ラ�夋嫨鏌愪釜鑺傜偣
+ if (d.type == 'cascader' && !d.hasOwnProperty('changeOnSelect')) {
+ //寮哄埗寮�鍚仈绾у彲浠ラ�夋嫨鏌愪釜鑺傜偣
+ d.changeOnSelect = true;
+ }
+ //寮�鍚繙绋嬫悳绱�
+ if (d.remote) {
+ this.remoteKeys.push(d.dataKey);
+ d.data = []; //{ dicNo: d.dataKey, data: [] };
+ return true;
+ }
+ //2020.05.03澧炲姞缂栬緫琛ㄥ崟瀵筩heckbox鐨勬敮鎸�
+ if (d.type == 'checkbox' && !(formFields[d.field] instanceof Array)) {
+ formFields[d.field] = [];
+ }
+ if (keys.indexOf(d.dataKey) == -1) {
+ //2020.05.03澧炲姞璁板綍缂栬緫瀛楁鐨勬暟鎹簮绫诲瀷
+
+ keys.push(d.dataKey);
+ //2020.05.03淇鏌ヨ琛ㄥ崟涓庣紪杈戣〃鍗晅ype绫诲瀷鍙樻垚寮轰竴鑷存�х殑闂
+ //this.dicKeys.push({ dicNo: d.dataKey, data: [], type: d.type });
+ // 2020.11.01澧炲姞iview缁勪欢Cascader鏁版嵁婧愬瓨鍌�
+ let _dic = {
+ dicNo: d.dataKey,
+ data: [],
+ fileds: [d.field],
+ orginData: []
+ };
+ if (d.type == 'cascader') {
+ _dic.type = 'cascader';
+ }
+ if (isEdit) {
+ _dic['e_type'] = d.type;
+ }
+ this.dicKeys.push(_dic);
+ } else if (d.type == 'cascader') {
+ this.dicKeys.forEach((x) => {
+ if (x.dicNo == d.dataKey) {
+ x.type = 'cascader';
+ x.fileds.push(d.field);
+ }
+ });
+ }
+ if (d.type != 'cascader') {
+ //2020.01.30绉婚櫎鍐呴儴琛ㄥ崟formOptions鏁版嵁婧愰厤缃牸寮廳ata.data锛屾墍鏈夊弬鏁版敼涓轰笌缁勪欢api鏍煎紡鐩稿悓
+ Object.assign(
+ d,
+ this.dicKeys.filter((f) => {
+ return f.dicNo == d.dataKey;
+ })[0],
+ { type: d.type }
+ );
+ }
+ });
+ });
+ },
+ //鍒濆table涓庢槑缁嗚〃鐨勬暟鎹簮鎸囧悜dicKeys瀵硅薄锛屽啀鍘诲悗鍙板姞杞芥暟鎹簮
+ initColumns(scoure, dicKeys, keys) {
+ if (!scoure || !(scoure instanceof Array)) return;
+ scoure.forEach((item) => {
+ if (!item.bind || (item.bind.data && item.bind.data.length > 0))
+ return true;
+ let key = item.bind.key || item.bind.dicNo;
+ if (this.remoteKeys.indexOf(key) != -1) {
+ item.bind.remote = true;
+ return true;
+ }
+ if (this.hasKeyField.indexOf(item.field) == -1) {
+ this.hasKeyField.push(item.field);
+ }
+ var dic = dicKeys.filter((x) => {
+ return x.dicNo == key;
+ });
+ if (!dic || dic.length == 0) {
+ dicKeys.push({ dicNo: key, data: [] });
+ dic = [dicKeys[dicKeys.length - 1]];
+ keys.push(key);
+ }
+ //2020.11.01澧炲姞绾ц仈澶勭悊
+ if (dic[0].type == 'cascader' || dic[0].type == 'treeSelect') {
+ item.bind = { data: dic[0].orginData, type: 'select', key: key };
+ } else {
+ item.bind = dic[0];
+ }
+ //2020.05.03浼樺寲table鏁版嵁婧恈heckbox涓巗elect绫诲瀷浠庣紪杈戝垪涓�夊彇
+ item.bind.type = item.bind.e_type || 'string';
+ });
+ },
+ bindOptions(dic) {
+ //缁戝畾涓嬫媺妗嗙殑鏁版嵁婧�
+ //缁戝畾鍚庡彴鐨勫瓧鍏告暟鎹�
+ dic.forEach((d) => {
+ if (d.data.length >= (this.select2Count || 500)) {
+ if (
+ !this.dicKeys.some((x) => {
+ return (
+ x.dicNo == d.dicNo &&
+ (x.type == 'cascader' || x.type == 'treeSelect')
+ );
+ })
+ ) {
+ d.data.forEach((item) => {
+ item.label = item.value;
+ item.value = item.key;
+ });
+ }
+ }
+ this.dicKeys.forEach((x) => {
+ if (x.dicNo != d.dicNo) return true;
+ //2020.10.26澧炲姞绾ц仈鏁版嵁婧愮粦瀹氬鐞�
+ if (x.type == 'cascader' || x.type == 'treeSelect') {
+ // x.data=d.data;
+ //鐢熸垚tree缁撴瀯
+ let _data = JSON.parse(JSON.stringify(d.data));
+ //2022.04.04澧炲姞绾ц仈瀛楀吀鏁版嵁婧愬埛鏂板悗table娌℃湁鍙樺寲鐨勯棶棰�
+ this.columns.forEach((column) => {
+ if (column.bind && column.bind.key == d.dicNo) {
+ column.bind.data = d.data;
+ }
+ });
+ let arr = this.base.convertTree(_data, (node, data, isRoot) => {
+ if (!node.inited) {
+ node.inited = true;
+ node.label = node.value;
+ node.value = node.key;
+ }
+ });
+ x.data.push(...arr);
+ x.orginData.push(...d.data);
+ //2021.10.17淇鏌ヨ绾ц仈涓嶈兘缁戝畾鏁版嵁婧愮殑闂
+ this.searchFormOptions.forEach((searhcOption) => {
+ searhcOption.forEach((_option) => {
+ if (_option.type == 'cascader' && _option.dataKey == x.dicNo) {
+ _option.data = arr;
+ _option.orginData = d.data;
+ }
+ });
+ });
+ //2021.10.17淇绾ц仈涓嶈兘浜岀骇鍒锋柊鐨勯棶棰�
+ this.editFormOptions.forEach((editOption) => {
+ editOption.forEach((_option) => {
+ if (
+ (_option.type == 'cascader' || _option.type == 'treeSelect') &&
+ _option.dataKey == x.dicNo
+ ) {
+ _option.data = arr;
+ _option.orginData = d.data;
+ }
+ });
+ });
+ } else if (d.data.length > 0 && !d.data[0].hasOwnProperty('key')) {
+ let source = d.data,
+ newSource = new Array(source.length);
+ for (let index = 0; index < source.length; index++) {
+ newSource[index] = {
+ //榛樿浠庡瓧鍏告暟鎹鍑烘潵鐨刱ey閮芥槸string绫诲瀷,浣嗗鏋滄暟鎹粠sql涓煡璇㈢殑鍙兘涓洪潪string,鍚︽槸async-validator闇�瑕侀噸缃缃牸寮�
+ key: source['key'] + '', //source[index][x.config.valueField] + "",
+ value: source['value'] //source[index][x.config.textField]
+ };
+ }
+
+ x.data.push(...newSource);
+ } else {
+ //2020.06.06锛屽鏋滄槸selectList鏁版嵁婧愪娇鐢ㄧ殑鑷畾涔塻ql骞朵笖key鏄暟瀛楋紝寮哄埗杞崲鎴愬瓧绗︿覆
+ if (
+ x.e_type == 'selectList' &&
+ d.data.length > 0 &&
+ typeof d.data[0].key == 'number'
+ ) {
+ d.data.forEach((c) => {
+ c.key = c.key + '';
+ });
+ }
+ x.data.push(...d.data);
+ }
+ if (
+ this.singleSearch &&
+ this.singleSearch.dataKey &&
+ this.singleSearch.dataKey == x.dicNo
+ ) {
+ this.singleSearch.data.splice(0, 1, ...x.data);
+ }
+ });
+ });
+ },
+ getUrl(action, ingorPrefix) {
+ //鏄惁蹇界暐鍓嶇紑/ 鑾峰彇鎿嶄綔鐨剈rl
+ return (!ingorPrefix ? '/' : '') + 'api' + this.table.url + action;
+ },
+
+ initDicKeys() {
+ //鍒濆鍖栧瓧鍏告暟鎹�
+ let keys = [];
+ //2022.04.17浼樺寲閲嶆柊鍔犺浇鏁版嵁婧�
+ this.dicKeys.forEach((item) => {
+ item.data.splice(0);
+ item.orginData && item.orginData.splice(0);
+ });
+ //this.dicKeys.splice(0);
+ //鍒濆鍖栫紪杈戞暟鎹簮,榛樿涓轰竴涓┖鏁扮粍锛屽鏋滆姹傚繀濉缃畉ype=number/decimal鐨勬渶灏忓��
+ this.initFormOptions(this.editFormOptions, keys, this.editFormFields, true);
+ //鍒濆鍖栨煡璇㈡暟鎹簮,榛樿涓轰竴涓┖鏁扮粍
+ this.initFormOptions(
+ this.searchFormOptions,
+ keys,
+ this.searchFormFields,
+ false
+ );
+ //鏌ヨ鏃ユ湡璁剧疆涓哄彲閫夊紑濮嬩笌缁撴灉鏃ユ湡
+ this.searchFormOptions.forEach((item) => {
+ item.forEach((x) => {
+ if (x.type == 'date' || x.type == 'datetime') x.range = true;
+ });
+ });
+ //鍒濆鍖杁atatable琛ㄦ暟鎹簮,榛樿涓轰竴涓┖鏁扮粍,dicKeys涓虹晫闈㈡墍鏈夌殑鏁版嵁瀛楀吀缂栧彿
+ this.initColumns(this.columns, this.dicKeys, keys);
+ //2021.05.23榛樿寮�鍚煡璇㈤〉闈㈡墍鏈夊瓧娈垫帓搴�,濡傛灉涓嶉渶瑕佹帓搴忥紝鍦╫nInited閬嶅巻columns璁剧疆sort=false
+ //2021.09.25绉婚櫎寮哄埗鎺掑簭鍔熻兘
+ // this.columns.forEach(x => {
+ // x.sort = x.render ? false : true;
+ // })
+ if (this.detailOptions && this.detailOptions.columns) {
+ this.initColumns(this.detailOptions.columns, this.dicKeys, keys);
+ }
+ //鍒濆鍖栧揩閫熸煡璇㈠瓧娈�,榛樿浣跨敤浠g爜鐢熸垚鍣ㄩ厤缃殑绗竴涓煡璇㈠瓧娈�
+ if (this.searchFormOptions.length > 0) {
+ this.singleSearch = {
+ dataKey: this.searchFormOptions[0][0].dataKey,
+ dicNo: this.searchFormOptions[0][0].dicNo,
+ field: this.searchFormOptions[0][0].field,
+ title: this.searchFormOptions[0][0].title,
+ type: this.searchFormOptions[0][0].type,
+ data: []
+ };
+ // this.singleSearch = this.searchFormOptions[0][0];
+ }
+ if (keys.length == 0) return;
+ let $this = this;
+ this.http.post('/api/Sys_Dictionary/GetVueDictionary', keys).then((dic) => {
+
+ $this.bindOptions(dic);
+ //2022.04.04澧炲姞瀛楀吀鍔犺浇瀹屾垚鏂规硶
+ $this.dicInited && $this.dicInited(dic);
+ });
+ },
+ setFiexdColumn(columns, containerWidth) {
+ //璁$畻鏁翠釜table鐨勫搴︼紝鏍规嵁瀹藉害鍐冲畾鏄惁鍚敤绗竴琛屾樉绀虹殑鍒椾负鍥哄畾鍒�
+ //2021.09.21绉婚櫎寮哄埗鍥哄畾绗竴鍒�
+ // let columnsWidth = 0;
+ // columns.forEach(x => {
+ // if (!x.hidden && x.width) {
+ // columnsWidth += x.width;
+ // }
+ // });
+ // //鍚敤绗竴鍒椾负鍥哄畾鍒�
+ // if (columnsWidth > containerWidth) {
+ // let firstColumn = columns.find(x => !x.hidden);
+ // if (firstColumn) {
+ // firstColumn.fixed = true;
+ // }
+ // }
+ },
+ initBoxHeightWidth() {
+ //鍒濆鍖栧脊鍑烘鐨勯珮搴︿笌瀹藉害
+ let clientHeight = document.documentElement.clientHeight;
+ //寮瑰嚭妗嗛珮搴﹁嚦灏�250px
+ clientHeight = clientHeight < 250 ? 250 : clientHeight;
+ let clientWidth = document.documentElement.clientWidth;
+ if (
+ this.editFormOptions.some((x) => {
+ return x.some((item) => {
+ return item.type == 'editor';
+ });
+ })
+ ) {
+ this.editor.uploadImgUrl = this.getUrl('upload');
+ this.boxOptions.height = clientHeight * 0.8;
+ this.boxOptions.width = clientWidth * 0.8;
+ } else {
+ if (this.boxOptions.height) {
+ //濡傛灉楂樺害涓庡搴﹁秴杩囦簡鑾峰彇鍒扮殑鍙楂樺搴︼紝鍒欒涓洪粯璁ょ殑90%楂樺
+ if (this.boxOptions.height > clientHeight * 0.8) {
+ this.boxOptions.height = clientHeight * 0.8;
+ }
+ }
+ if (this.boxOptions.width) {
+ //濡傛灉楂樺害涓庡搴﹁秴杩囦簡鑾峰彇鍒扮殑鍙楂樺搴︼紝鍒欒涓洪粯璁ょ殑90%楂樺
+ if (this.boxOptions.width > clientWidth * 0.8) {
+ this.boxOptions.width = clientWidth * 0.8;
+ }
+ }
+ }
+ //璁$畻鏁翠釜table鐨勫搴︼紝鏍规嵁瀹藉害鍐冲畾鏄惁鍚敤绗竴琛屾樉绀虹殑鍒椾负鍥哄畾鍒�
+ let maxTableWidth = clientWidth - 270;
+ this.setFiexdColumn(this.columns, maxTableWidth);
+
+ this.height = this.tableHeight || clientHeight - 206;
+ this.url = this.getUrl(this.const.PAGE);
+ //璁$畻寮瑰嚭妗嗙殑楂樹笌瀹藉害
+ //濡傛灉鏈夋槑缁嗚〃锛岄珮搴︿笌瀹藉甫璁剧疆涓�0.9/0.82
+ if (this.detail.columns && this.detail.columns.length > 0) {
+ this.hasDetail = true;
+ clientWidth = clientWidth * 0.8;
+ clientHeight = clientHeight * 0.85;
+ if (!this.detailOptions.height) {
+ this.detailOptions.height =
+ clientHeight - this.editFormOptions.length * 36 - 234;
+ this.detailOptions.height =
+ this.detailOptions.height < 240 ? 240 : this.detailOptions.height;
+ }
+
+ this.detailOptions.columns = this.detail.columns;
+ this.detailOptions.pagination.sortName = this.detail.sortName;
+ this.detailOptions.cnName = this.detail.cnName;
+ this.detailOptions.key = this.detail.key;
+ this.detailOptions.url = this.getUrl('getDetailPage');
+ //璁$畻寮瑰嚭妗嗘暣涓猼able鐨勫搴︼紝鏍规嵁瀹藉害鍐冲畾鏄惁鍚敤绗竴琛屾樉绀虹殑鍒椾负鍥哄畾鍒�
+ this.setFiexdColumn(this.detail.columns, clientWidth);
+ } else {
+ let maxColumns = 1; //鏈�澶у垪鏁帮紝鏍规嵁鍒楄绠楀脊妗嗙殑瀹藉害
+ this.editFormOptions.forEach((x) => {
+ if (x.length > maxColumns) maxColumns = x.length;
+ });
+ let maxHeightRate = 0.7,
+ maxWidthRate = 0.5;
+ maxWidthRate = maxColumns / 10 + 0.3;
+ maxHeightRate = (this.editFormOptions.length || 1) * 0.1 + 0.03;
+ maxHeightRate = maxHeightRate > 0.9 ? 0.9 : maxHeightRate;
+ clientWidth = clientWidth * maxWidthRate;
+ clientHeight = clientHeight * maxHeightRate;
+ // this.boxOptions.width = clientWidth * maxWidthRate;
+ // this.boxOptions.height = clientHeight * maxHeightRate;
+ }
+ if (!this.boxOptions.height) {
+ this.boxOptions.height = clientHeight + 10;
+ }
+ if (!this.boxOptions.width) {
+ this.boxOptions.width = clientWidth + 30;
+ }
+ },
+ rowOnChange(row) {
+ this.rowChange(row);
+ },
+ rowChange(row) {
+ //閫変腑琛宑heckbox琛屼簨浠�
+ },
+ rowOnClick({ row, column, event }) {
+ this.rowClick({ row, column, event });
+ },
+ rowClick({ row, column, event }) {
+ // 鐐瑰嚮琛屼簨浠�(2020.11.07)
+ },
+ rowOnDbClick({ row, column, event }) {
+ this.rowDbClick({ row, column, event });
+ },
+ rowDbClick({ row, column, event }) {
+ // 鍙屽嚮鍑昏浜嬩欢(2021.05.23)
+ },
+ $error(message) {
+ this.$message.error(message);
+ // this.$message({
+ // type: 'error',
+ // content: message,
+ // duration: 5
+ // });
+ },
+ $success(message) {
+ this.$message.success(message);
+ },
+ setFiexdSearchForm(visiable) {
+ //2020.09.011澧炲姞鍥哄畾鏌ヨ琛ㄥ崟鍔熻兘,visiable=true榛樿灏嗘煡璇㈣〃鍗曞睍寮�
+ this.fiexdSearchForm = true;
+ let refreshBtn = this.buttons.find((x) => x.name == '鍒� 鏂�');
+ if (visiable) {
+ this.searchBoxShow = true;
+ }
+ if (refreshBtn) {
+ refreshBtn.name = '閲� 缃�';
+ refreshBtn.onClick = function () {
+ this.resetSearch();
+ };
+ }
+ },
+ tableBeginEdit(row, column, index) {
+ //2021.03.19鏄惁寮�鍚煡璇㈢晫闈㈣〃鏍煎弻鍑荤紪杈戠粨鏉熸柟娉�,杩斿洖false涓嶄細缁撴潫缂栬緫
+ return this.beginEdit(row, column, index);
+ },
+ beginEdit(row, column, index) {
+ //2021.03.19鏄惁寮�鍚煡璇㈢晫闈㈣〃鏍煎弻鍑荤紪杈戠粨鏉熸柟娉�,杩斿洖false涓嶄細缁撴潫缂栬緫
+ return true;
+ },
+ tableEndEditBefore(row, column, index) {
+ return this.endEditBefore(row, column, index);
+ },
+ endEditBefore(row, column, index) {
+ //2021.03.19鏄惁寮�鍚煡璇㈢晫闈㈣〃鏍煎弻鍑荤紪杈戠粨鏉熸柟娉�,杩斿洖false涓嶄細缁撴潫缂栬緫
+ return true;
+ },
+ filterPermission(tableName, permission) {
+ //2021.03.19鍒ゆ柇鏄惁鏈夋煇涓〃鐨勬寜閽潈闄�
+ //:["Search","Add","Delete","Update","Import","Export","Upload","Audit"]
+ const _result = (this.$store.state.permission || []).find((x) => {
+ return x.url == '/' + tableName;
+ });
+ return _result && _result.permission.some((x) => x == permission);
+ },
+ destroyed() {
+ //2021.04.11澧炲姞vue椤甸潰閿�姣佹柟娉�,璺敱蹇呴』璁剧疆keepLive:false锛岃缃柟娉曡锛氬墠绔紑鍙戞枃妗�-銆媅绂佺敤椤甸潰缂撳瓨keepAlive]
+ },
+ loadTreeTableChildren(tree, treeNode, resolve) {
+ this.loadTreeChildren.call(this, tree, treeNode, resolve);
+ },
+ loadTreeChildren(tree, treeNode, resolve) {
+ //鏍戝舰缁撴瀯鍔犺浇瀛愯妭鐐�(2021.05.02),鍦╫nInit涓缃簡rowKey涓婚敭瀛楁鍚庢墠浼氱敓鏁�
+ return resolve([]);
+ },
+ importDetailAfter(data) {
+ //2022.01.08澧炲姞鏄庣粏琛ㄥ鍏ュ悗澶勭悊
+ },
+ importExcelAfter(data) {
+ //2022.01.08澧炲姞鏄庣粏琛ㄥ鍏ュ悗鏂规硶鍒ゆ柇
+
+ if (!data.status) {
+ return; // this.$message.error(data.message);
+ }
+ //鏄庣粏琛ㄥ鍏�
+ if (this.boxModel) {
+ if (data.data) {
+ data.data = JSON.parse(data.data);
+ } else {
+ data.data = [];
+ }
+ data.data.forEach((x) => {
+ x[this.detail.key] = undefined;
+ x[this.table.key] = undefined;
+ });
+ this.importDetailAfter(data); //澧炲姞鏄庣粏琛ㄥ鍏ュ悗澶勭悊
+ this.$refs.detail.rowData.unshift(...data.data);
+ this.upload.excel = false;
+ return;
+ }
+ this.importAfter(data);
+ },
+ onGridModelClose(iconClick) {
+ if (this.isBoxAudit) {
+ this.initFormOptionType(false);
+ }
+ this.isBoxAudit = false;
+ this.onModelClose(iconClick);
+ },
+ initAuditColumn() {
+
+ },
+ getWorkFlowSteps(row) {
+ let table = this.table.url.replaceAll('/', '');
+ let url = `api/Sys_WorkFlow/getSteps?tableName=${table}&id=${row[this.table.key]
+ }`;
+ this.http.get(url, {}, true).then((result) => {
+ this.workFlowSteps.splice(0);
+ //鏈夊彲鑳芥病鏈夐厤缃鎵规祦绋�
+ if (!result.list || !result.list.length) {
+ result.list = [];
+ this.auditParam.showAction = true;
+ this.auditParam.height = 240;
+ this.auditParam.showViewButton = row.AuditStatus == 0;
+ } else {
+ this.auditParam.showAction = result.list.some((c) => {
+ return c.isCurrentUser;
+ });
+ this.auditParam.height = 511;
+ this.auditParam.showViewButton = true;
+ }
+ this.auditParam.reason = '';
+ this.auditParam.status = -1;
+ this.auditParam.value = -1;
+ if (result.his) {
+ result.his.forEach((item) => {
+ item.auditStatus = this.getAuditStatus(item.auditStatus);
+ });
+ }
+
+ this.auditParam.auditHis = result.his;
+ this.workFlowSteps.push(...result.list);
+ this.isBoxAudit = true;
+ this.initFormOptionType(true);
+ this.edit(row);
+ this.boxOptions.title = '瀹℃牳';
+ });
+ },
+ initFormOptionType(isReadonly) {
+ this.editFormOptions.forEach((options) => {
+ options.forEach((option) => {
+ if (isReadonly) {
+ if (!option.readonly) {
+ this.formFieldsType.push(option.field);
+ option.readonly = true;
+ }
+ } else {
+ if (this.formFieldsType.indexOf(option.field) != -1) {
+ option.readonly = false;
+ }
+ }
+ });
+ });
+ },
+ getAuditStatus(status) {
+ let data = this.auditParam.data.find((x) => {
+ return x.value == status;
+ });
+ if (!data) {
+ return '-';
+ // return `瀹℃牳鍊间笉姝g‘:${status}`
+ }
+ return data.text;
+ },
+ initFlowQuery() {
+ if (this.$route.query.viewflow) {
+ this.$refs.table && this.search();
+ }
+ },
+ fullscreen(full) { //寮瑰嚭妗嗗叏灞忔柟娉�
+
+ }
+};
+import customColumns from './ViewGridCustomColumn.js';
+//鍚堝苟鎵╁睍鏂规硶
+methods = Object.assign(methods, detailMethods, serviceFilter, customColumns);
+export default methods;
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/basicinfo/router.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/basicinfo/router.js
new file mode 100644
index 0000000..d907544
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/basicinfo/router.js
@@ -0,0 +1,72 @@
+
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+import gridBody from './extend/routerview.vue';
+import gridHeader from './extend/addrouters.vue';
+let extension = {
+ components: {
+ //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: gridHeader,
+ gridBody: gridBody,
+ gridFooter: '',
+ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+ buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ methods: {
+ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+ onInit() {
+ var viewButton = this.buttons.find((x) => x.value == "ViewAllRouter");
+ if (viewButton) {
+ viewButton.onClick = ()=>{
+ this.$refs.gridBody.open();
+ }
+ }
+
+ var addRoutersButton = this.buttons.find((x) => x.value == "AddRouters");
+ if (addRoutersButton) {
+ addRoutersButton.onClick = ()=>{
+ this.$refs.gridHeader.open();
+ }
+ }
+ },
+ onInited() {
+ //妗嗘灦鍒濆鍖栭厤缃悗
+ //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+ //this.detailOptions.columns.forEach(column=>{ });
+ },
+ searchBefore(param) {
+ //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+ //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+ return true;
+ },
+ searchAfter(result) {
+ //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+ return true;
+ },
+ addBefore(formData) {
+ //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+ return true;
+ },
+ updateBefore(formData) {
+ //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+ return true;
+ },
+ rowClick({ row, column, event }) {
+ //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+ // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+ },
+ modelOpenAfter(row) {
+ //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+ //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+ //(3)this.editFormFields.瀛楁='xxx';
+ //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+ //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+ }
+ }
+ };
+ export default extension;
+
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceInfo.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceInfo.js
new file mode 100644
index 0000000..d882861
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceInfo.js
@@ -0,0 +1,87 @@
+import gridBody from "./extend/importDevicePro.vue";
+let extension = {
+ components: {
+ //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: "",
+ gridBody: gridBody,
+ gridFooter: "",
+ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+ modelHeader: "",
+ modelBody: "",
+ modelFooter: "",
+ },
+ tableAction: "", //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+ buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ methods: {
+ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+ onInit() {
+ // console.log(this.detailOptions.buttons);
+ // console.log(this.$refs.detail)
+ var detailImport = this.detailOptions.buttons.find(
+ (item) => item.value == "import"
+ );
+ if (detailImport) {
+ detailImport.onClick = function () {
+ this.$refs.gridBody.open();
+ };
+ }
+ this.buttons.unshift({
+ //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+ name: "寮�鍚湇鍔�", //鎸夐挳鍚嶇О
+ icon: "el-icon-document", //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+ type: "primary", //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+ onClick: function () {
+ this.$Message.success("寮�鍚湇鍔�");
+ },
+ });
+ },
+ onInited() {
+ //妗嗘灦鍒濆鍖栭厤缃悗
+ //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+ // this.detailOptions.columns.forEach(column=>{ });
+ // console.log(this)
+ },
+ searchBefore(param) {
+ //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+ //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+ return true;
+ },
+ searchAfter(result) {
+ //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+ return true;
+ },
+ addBefore(formData) {
+ //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+ return true;
+ },
+ updateBefore(formData) {
+ //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+ return true;
+ },
+ rowClick({ row, column, event }) {
+ //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+ // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+ },
+ modelOpenAfter(row) {
+ //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+ //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+ //(3)this.editFormFields.瀛楁='xxx';
+ //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+ //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+ },
+ updated() {
+ //console.log(this.$refs)
+ this.$nextTick(() => {
+ if (this.$refs.upload_excel) {
+ alert("鐐瑰嚮浜嗕笂浼犳寜閽�");
+ this.$refs.upload_excel.upload = function () {
+ console.log("鐐瑰嚮浜嗕笂浼犳寜閽�");
+ };
+ }
+ // alert(1)
+ });
+ },
+ },
+};
+export default extension;
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceProtocol.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceProtocol.js
new file mode 100644
index 0000000..a39e193
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceProtocol.js
@@ -0,0 +1,58 @@
+
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+
+let extension = {
+ components: {
+ //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: '',
+ gridBody: '',
+ gridFooter: '',
+ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+ buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ methods: {
+ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+ onInit() {
+ },
+ onInited() {
+ //妗嗘灦鍒濆鍖栭厤缃悗
+ //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+ //this.detailOptions.columns.forEach(column=>{ });
+ },
+ searchBefore(param) {
+ //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+ //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+ return true;
+ },
+ searchAfter(result) {
+ //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+ return true;
+ },
+ addBefore(formData) {
+ //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+ return true;
+ },
+ updateBefore(formData) {
+ //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+ return true;
+ },
+ rowClick({ row, column, event }) {
+ //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+ // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+ },
+ modelOpenAfter(row) {
+ //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+ //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+ //(3)this.editFormFields.瀛楁='xxx';
+ //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+ //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+ }
+ }
+ };
+ export default extension;
+
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceProtocolDetail.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceProtocolDetail.js
new file mode 100644
index 0000000..a39e193
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/deviceProtocolDetail.js
@@ -0,0 +1,58 @@
+
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+
+let extension = {
+ components: {
+ //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: '',
+ gridBody: '',
+ gridFooter: '',
+ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+ buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ methods: {
+ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+ onInit() {
+ },
+ onInited() {
+ //妗嗘灦鍒濆鍖栭厤缃悗
+ //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+ //this.detailOptions.columns.forEach(column=>{ });
+ },
+ searchBefore(param) {
+ //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+ //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+ return true;
+ },
+ searchAfter(result) {
+ //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+ return true;
+ },
+ addBefore(formData) {
+ //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+ return true;
+ },
+ updateBefore(formData) {
+ //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+ return true;
+ },
+ rowClick({ row, column, event }) {
+ //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+ // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+ },
+ modelOpenAfter(row) {
+ //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+ //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+ //(3)this.editFormFields.瀛楁='xxx';
+ //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+ //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+ }
+ }
+ };
+ export default extension;
+
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/dispatchInfo.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/dispatchInfo.js
new file mode 100644
index 0000000..a39e193
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/quartzJob/dispatchInfo.js
@@ -0,0 +1,58 @@
+
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+
+let extension = {
+ components: {
+ //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: '',
+ gridBody: '',
+ gridFooter: '',
+ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+ buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ methods: {
+ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+ onInit() {
+ },
+ onInited() {
+ //妗嗘灦鍒濆鍖栭厤缃悗
+ //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+ //this.detailOptions.columns.forEach(column=>{ });
+ },
+ searchBefore(param) {
+ //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+ //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+ return true;
+ },
+ searchAfter(result) {
+ //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+ return true;
+ },
+ addBefore(formData) {
+ //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+ return true;
+ },
+ updateBefore(formData) {
+ //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+ return true;
+ },
+ rowClick({ row, column, event }) {
+ //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+ // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+ },
+ modelOpenAfter(row) {
+ //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+ //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+ //(3)this.editFormFields.瀛楁='xxx';
+ //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+ //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+ }
+ }
+ };
+ export default extension;
+
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Dictionary.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Dictionary.js
new file mode 100644
index 0000000..e37ecf6
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Dictionary.js
@@ -0,0 +1,65 @@
+import { h, resolveComponent } from 'vue';
+let extension = {
+ components: { //鍔ㄦ�佹墿鍏呯粍浠舵垨缁勪欢璺緞
+ //琛ㄥ崟header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ //鎵╁睍缁勪欢寮曞叆鏂瑰紡
+ gridHeader: '',
+ gridBody: '',
+ gridFooter: '',
+ //寮瑰嚭妗�(淇敼銆佺紪杈戙�佹煡鐪�)header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ buttons: [], //鎵╁睍鐨勬寜閽�
+ methods: { //浜嬩欢鎵╁睍
+ onInit() {
+ //鐐瑰嚮鍗曞厓鏍肩紪杈戜笌缁撴潫缂栬緫(榛樿鏄偣鍑诲崟鍏冩牸缂栬緫锛岄紶鏍囩寮�缁撴潫缂栬緫)
+ this.detailOptions.clickEdit = true;
+ this.editFormOptions.forEach(x => {
+ x.forEach(item => {
+ if (item.field == 'ParentId') {
+ item.min = 0;
+ }
+ if (item.field == "DbSql") {
+ item.placeholder = "濡傛灉浠庢暟鎹簱鍔犺浇鏁版嵁婧愶紝璇锋寜姝ゆ牸寮忛厤缃畇ql璇彞锛歴elect orderType as key,orderName as value from order 濡傛灉闇�瑕佹牴鎹敤鎴蜂俊鎭姞杞芥暟鎹簮锛岃閰嶇疆濂芥sql,鍐嶄慨鏀瑰悗鍙癉ictionaryHandler.GetCustomDBSql鏂规硶";
+ }
+ })
+ })
+ this.detailOptions.columns.forEach(x => {
+ if (x.field == 'OrderNo') {
+ x.summary = true;
+ }
+ })
+ //淇濆瓨鍚庝笉鍏抽棴缂栬緫妗�
+ this.boxOptions.saveClose = false;
+ },
+ onInited() {
+ this.boxOptions.height = document.body.clientHeight * 0.87
+ this.height = this.height - 45;
+ },
+ addBefore(formData) {
+ return this.saveBefore(formData);
+ },
+ updateBefore(formData) {
+ return this.saveBefore(formData);
+ },
+ saveBefore(formData) {
+ if (this.editFormFields.DbSql &&
+ (this.editFormFields.DbSql.indexOf('value') == -1 ||
+ this.editFormFields.DbSql.indexOf('key') == -1)
+ ) {
+ this.$message.error("sql璇彞蹇呴』鍖呮嫭key/value瀛楁,濡�:select orderType as key,orderName as value from order");
+ return false;
+ }
+ return true;
+ },
+ searchBefore(param) {
+ return true;
+ },
+ searchAfter(result) {
+ return true;
+ }
+ }
+};
+export default extension;
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_DictionaryList.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_DictionaryList.js
new file mode 100644
index 0000000..da94487
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_DictionaryList.js
@@ -0,0 +1,22 @@
+
+
+let extension = {
+ components: {//鍔ㄦ�佹墿鍏呯粍浠舵垨缁勪欢璺緞
+ //琛ㄥ崟header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ gridHeader:'',
+ gridbody:'',
+ gridFooter: '',
+ //寮瑰嚭妗�(淇敼銆佺紪杈戙�佹煡鐪�)header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ buttons: [],//鎵╁睍鐨勬寜閽�
+ methods: {//浜嬩欢鎵╁睍
+ onInit() {
+ },
+ onInited() {
+ }
+ }
+};
+export default extension;
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Log.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Log.js
new file mode 100644
index 0000000..5b05c40
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Log.js
@@ -0,0 +1,26 @@
+import { h, resolveComponent } from 'vue';
+let extension = {
+ components: {
+ //鍔ㄦ�佹墿鍏呯粍浠舵垨缁勪欢璺緞
+ //琛ㄥ崟header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ gridHeader: "", //{ template: "<div>鎵╁睍缁剎x浠�</div>" },
+ gridBody: '',
+ gridFooter: "",
+ //寮瑰嚭妗�(淇敼銆佺紪杈戙�佹煡鐪�)header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ modelHeader: "",
+ modelBody: "",
+ modelFooter: ""
+ },
+ buttons: [], //鎵╁睍鐨勬寜閽�
+ methods: {
+ //浜嬩欢鎵╁睍
+ onInit() {
+ console.log("sys_log")
+ this.setFiexdSearchForm(true);
+ },
+ onInited() {
+ this.height = this.height - 170;
+ }
+ }
+};
+export default extension;
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Role.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Role.js
new file mode 100644
index 0000000..5ba4845
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Role.js
@@ -0,0 +1,49 @@
+
+let extension = {
+ components: {//鍔ㄦ�佹墿鍏呯粍浠舵垨缁勪欢璺緞
+ //琛ㄥ崟header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ gridHeader: '',
+ gridBody: '',
+ gridFooter: '',
+ //寮瑰嚭妗�(淇敼銆佺紪杈戙�佹煡鐪�)header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ buttons: [],//鎵╁睍鐨勬寜閽�
+ tableAction:"Sys_Role",
+ methods: {//浜嬩欢鎵╁睍
+ onInited () {
+ this.height = this.height - 80;
+ this.editFormOptions.forEach(x => {
+ x.forEach(item => {
+ if (item.field == 'ParentId') {
+ item.title = "涓婄骇瑙掕壊";
+ //璁剧疆浠绘剰鑺傜偣閮借兘閫変腑(榛樿鍙兘閫変腑鏈�鍚庝竴涓妭鐐�)
+ item.changeOnSelect = true;
+ }
+ })
+ })
+ },
+ onInit() {
+ //璁剧疆treetable鐨勫敮涓�鍊煎瓧娈�(杩欎釜瀛楁鐨勫�煎湪琛ㄩ噷闈㈠繀椤绘槸鍞竴鐨�)
+ this.rowKey="Role_Id";
+ },
+ /***鍔犺浇鍚庡彴鏁版嵁瑙丼ys_RoleController.cs鏂囦欢***/
+ loadTreeChildren(tree, treeNode, resolve) { //鍔犺浇瀛愯妭鐐�
+ let url=`api/role/getTreeTableChildrenData?roleId=${tree.Role_Id}`;
+ this.http.post(url,{}).then(result=>{
+ resolve(result.rows)
+ })
+ },
+ /***鍔犺浇鍚庡彴鏁版嵁瑙丼ys_RoleController.cs鏂囦欢***/
+ searchBefore(params){//鍒ゆ柇鍔犺浇鏍硅妭鐐规垨瀛愯妭鐐�
+ //娌℃湁鏌ヨ鏉′欢锛岄粯璁ゆ煡璇㈣繑鍥炴墍鏈夋牴鑺傜偣鏁版嵁
+ if (!params.wheres.length) {
+ params.value=1;
+ }
+ return true;
+ }
+ }
+};
+export default extension;
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Role1.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Role1.js
new file mode 100644
index 0000000..d6715be
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_Role1.js
@@ -0,0 +1,61 @@
+
+import { h, resolveComponent } from 'vue';
+let extension = {
+ components: {//鍔ㄦ�佹墿鍏呯粍浠舵垨缁勪欢璺緞
+ //琛ㄥ崟header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ gridHeader: '',
+ gridBody: {
+ render () {
+ return [
+ h(resolveComponent('el-alert'), {
+ style: { 'margin-bottom': '12px' },
+ 'show-icon': true, type: 'error',
+ closable: false, title: '鍏充簬TreeTable浣跨敤'
+ }, ' treetable鍚屾牱鍏ㄩ儴浠g爜鑷姩鐢熸垚锛岄〉闈㈢敓鎴愬悗璁剧疆this.rowKe="xxx" tree涓婚敭瀛楁,鍗冲彲瀹屾垚鏍戝舰table閰嶇疆,鍏蜂綋璇存槑瑙丼ys_Role1.js'),
+ ]
+ }
+ },
+
+ gridFooter: '',
+ //寮瑰嚭妗�(淇敼銆佺紪杈戙�佹煡鐪�)header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ buttons: [],//鎵╁睍鐨勬寜閽�
+ tableAction:"Sys_Role",
+ methods: {//浜嬩欢鎵╁睍
+ onInited () {
+ this.height = this.height - 80;
+ this.editFormOptions.forEach(x => {
+ x.forEach(item => {
+ if (item.field == 'ParentId') {
+ item.title = "涓婄骇瑙掕壊";
+ //璁剧疆浠绘剰鑺傜偣閮借兘閫変腑(榛樿鍙兘閫変腑鏈�鍚庝竴涓妭鐐�)
+ item.changeOnSelect = true;
+ }
+ })
+ })
+ },
+ onInit() {
+ //璁剧疆treetable鐨勫敮涓�鍊煎瓧娈�(杩欎釜瀛楁鐨勫�煎湪琛ㄩ噷闈㈠繀椤绘槸鍞竴鐨�)
+ this.rowKey="Role_Id";
+ },
+ /***鍔犺浇鍚庡彴鏁版嵁瑙丼ys_RoleController.cs鏂囦欢***/
+ loadTreeChildren(tree, treeNode, resolve) { //鍔犺浇瀛愯妭鐐�
+ let url=`api/role/getTreeTableChildrenData?roleId=${tree.Role_Id}`;
+ this.http.post(url,{}).then(result=>{
+ resolve(result.rows)
+ })
+ },
+ /***鍔犺浇鍚庡彴鏁版嵁瑙丼ys_RoleController.cs鏂囦欢***/
+ searchBefore(params){//鍒ゆ柇鍔犺浇鏍硅妭鐐规垨瀛愯妭鐐�
+ //娌℃湁鏌ヨ鏉′欢锛岄粯璁ゆ煡璇㈣繑鍥炴墍鏈夋牴鑺傜偣鏁版嵁
+ if (!params.wheres.length) {
+ params.value=1;
+ }
+ return true;
+ }
+ }
+};
+export default extension;
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_User.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_User.js
new file mode 100644
index 0000000..4be7155
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/system/Sys_User.js
@@ -0,0 +1,86 @@
+import { defineAsyncComponent } from "vue";
+let extension = {
+ components: { //鍔ㄦ�佹墿鍏呯粍浠舵垨缁勪欢璺緞
+ //琛ㄥ崟header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ gridHeader: defineAsyncComponent(() =>
+ import("./Sys_User/Sys_UserGridHeader.vue")),
+ gridBody: '',
+ gridFooter: '',
+ //寮瑰嚭妗�(淇敼銆佺紪杈戙�佹煡鐪�)header銆乧ontent銆乫ooter瀵瑰簲浣嶇疆鎵╁厖鐨勭粍浠�
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ text: "鍙兘鐪嬪埌褰撳墠瑙掕壊涓嬬殑鎵�鏈夊笎鍙�",
+ buttons: [], //鎵╁睍鐨勬寜閽�
+ methods: { //浜嬩欢鎵╁睍
+ onInit() {
+ this.boxOptions.height = 530;
+ this.columns.push({
+ title: '鎿嶄綔',
+ hidden: false,
+ align: "center",
+ fixed: 'right',
+ width: 120,
+ render: (h, { row, column, index }) => {
+ return h(
+ "div", { style: { 'font-size': '13px', 'cursor': 'pointer', 'color': '#409eff' } }, [
+ h(
+ "a", {
+ style: { 'margin-right': '15px' },
+ onClick: (e) => {
+ e.stopPropagation()
+ this.$refs.gridHeader.open(row);
+ }
+ }, "淇敼瀵嗙爜"
+ ),
+ h(
+ "a", {
+ style: {},
+ onClick: (e) => {
+ e.stopPropagation()
+ this.edit(row);
+ }
+ },
+ "缂栬緫"
+ ),
+ ])
+ }
+ })
+ },
+ onInited() { },
+ addAfter(result) { //鐢ㄦ埛鏂板缓鍚庯紝鏄剧ず闅忔満鐢熸垚鐨勫瘑鐮�
+ if (!result.status) {
+ return true;
+ }
+ //鏄剧ず鏂板缓鐢ㄦ埛鐨勫瘑鐮�
+ //2020.08.28浼樺寲鏂板缓鎴愬悗鎻愮ず鏂瑰紡
+ this.$confirm(result.message, '鏂板缓鐢ㄦ埛鎴愬姛', {
+ confirmButtonText: '纭畾',
+ type: 'success',
+ center: true
+ }).then(() => { })
+
+ this.boxModel = false;
+ this.refresh();
+ return false;
+ },
+ modelOpenAfter() {
+ //鐐瑰嚮寮瑰嚭妗嗗悗锛屽鏋滄槸缂栬緫鐘舵�侊紝绂佹缂栬緫鐢ㄦ埛鍚嶏紝濡傛灉鏂板缓鐘舵�侊紝灏嗙敤鎴峰悕瀛楁璁剧疆涓哄彲缂栬緫
+ let isEDIT = this.currentAction == this.const.EDIT;
+ this.editFormOptions.forEach(item => {
+ item.forEach(x => {
+ if (x.field == "UserName") {
+ x.disabled=isEDIT;
+ }
+ })
+ //涓嶆槸鏂板缓锛屾�у埆榛樿鍊艰缃负鐢�
+ if (!isEDIT) {
+ this.editFormFields.Gender = "0";
+ }
+ })
+ }
+
+ }
+};
+export default extension;
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js b/Code Management/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js
new file mode 100644
index 0000000..8a02afb
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/taskinfo/task.js
@@ -0,0 +1,82 @@
+
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+import gridBody from './extend/taskExecuteDetail.vue'
+let extension = {
+ components: {
+ //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: '',
+ gridBody: gridBody,
+ gridFooter: '',
+ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+ buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ methods: {
+ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+ onInit() {
+ // this.$Notice.success({ title: this.detailOptions.cnName + ',鏌ヨ缁撴灉', desc: '杩斿洖鐨勫璞★細' + JSON.stringify(data) });
+
+ var previousButton = this.buttons.find((x) => x.value == "Previous");
+ if (previousButton) previousButton.hidden = true;
+ var nextButton = this.buttons.find((x) => x.value == "Next");
+ if (nextButton) nextButton.hidden = true;
+ var recoveryButton = this.buttons.find((x) => x.value == "TaskRecovery");
+ if (recoveryButton) recoveryButton.hidden = true;
+
+ //鎵╁睍椤甸潰鍒濆鍖栨搷浣�
+ this.columns.push({
+ field: '鎿嶄綔',
+ title: '鎿嶄綔',
+ width: 70,
+ fixed: 'right',
+ align: 'center',
+ formatter: (row) => {
+ return (
+ '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-view">鏌ョ湅</i>'
+ );
+ },
+ click: (row) => {
+ this.$refs.gridBody.open(row);
+ }
+ });
+ },
+ onInited() {
+ //妗嗘灦鍒濆鍖栭厤缃悗
+ //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+ //this.detailOptions.columns.forEach(column=>{ });
+ },
+ searchBefore(param) {
+ //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+ //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+ return true;
+ },
+ searchAfter(result) {
+ //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+ return true;
+ },
+ addBefore(formData) {
+ //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+ return true;
+ },
+ updateBefore(formData) {
+ //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+ return true;
+ },
+ rowClick({ row, column, event }) {
+ //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+ // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+ },
+ modelOpenAfter(row) {
+ //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+ //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+ //(3)this.editFormFields.瀛楁='xxx';
+ //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+ //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+ }
+ }
+};
+export default extension;
diff --git a/Code Management/WMS/WIDESEA_WMSClient/tests/unit/example.spec.js b/Code Management/WMS/WIDESEA_WMSClient/tests/unit/example.spec.js
new file mode 100644
index 0000000..bc9939b
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/tests/unit/example.spec.js
@@ -0,0 +1,13 @@
+import { expect } from 'chai'
+import { shallowMount } from '@vue/test-utils'
+import HelloWorld from '@/components/HelloWorld.vue'
+
+describe('HelloWorld.vue', () => {
+ it('renders props.msg when passed', () => {
+ const msg = 'new message'
+ const wrapper = shallowMount(HelloWorld, {
+ props: { msg }
+ })
+ expect(wrapper.text()).to.include(msg)
+ })
+})
diff --git a/Code Management/WMS/WIDESEA_WMSClient/vue.config.js b/Code Management/WMS/WIDESEA_WMSClient/vue.config.js
new file mode 100644
index 0000000..2428b79
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/vue.config.js
@@ -0,0 +1,53 @@
+// const webpack = require("webpack");
+
+module.exports = {
+ productionSourceMap: false,
+ lintOnSave: false,
+ devServer: {
+ port: 8080,
+ overlay: {
+ warning: false,
+ errors: false
+ }
+ },
+ css: {
+ //鏌ョ湅CSS灞炰簬鍝釜css鏂囦欢
+ sourceMap: true
+ },
+ configureWebpack: {
+ module: {
+ rules: [
+ {
+ test: /\.mjs$/,
+ include: /node_modules/,
+ type: "javascript/auto"
+ },
+ ]
+ }
+ },
+ //https://cli.vuejs.org/zh/guide/html-and-static-assets.html#html
+ chainWebpack: (config) => {
+ // 绉婚櫎 prefetch 鎻掍欢
+ config.plugins.delete('prefetch');
+ //鑷笅瀹氫箟title
+ config.plugin('html').tap((args) => {
+ args[0].title = 'WCS';
+ return args;
+ });
+
+ // 鎴栬��
+ // 淇敼瀹冪殑閫夐」锛�
+ // config.plugin('prefetch').tap(options => {
+ // options[0].fileBlacklist = options[0].fileBlacklist || []
+ // options[0].fileBlacklist.push(/myasyncRoute(.)+?\.js$/)
+ // return options
+ // })
+ }
+ // configureWebpack: {
+ // plugins: [
+ // new webpack.optimize.MinChunkSizePlugin({
+ // minChunkSize: 100000 // 閫氳繃鍚堝苟灏忎簬 minChunkSize 澶у皬鐨� chunk锛屽皢 chunk 浣撶Н淇濇寔鍦ㄦ寚瀹氬ぇ灏忛檺鍒朵互涓�
+ // })
+ // ]
+ // }
+};
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
index 7f139ed..eeb4d90 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -1269,11 +1269,11 @@
List<DtStockInfo> stockInfoList = stockInfos.Values.ToList();
var result = new DtStockInfo();
- if (stockInfoList.IsNullOrEmpty())
- {
- stockInfoList = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
- .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock).IncludesAllFirstLayer().ToListAsync();
- }
+ //if (stockInfoList.IsNullOrEmpty())
+ //{
+ // stockInfoList = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
+ // .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock).IncludesAllFirstLayer().ToListAsync();
+ //}
result = stockInfoList.Where(x => x.AreaCode == areaCode && x.OutboundTime < DateTime.Now && x.IsFull)
.WhereIF(!productionLine.IsNullOrEmpty(), x => x.ProductionLine == productionLine)
@@ -1286,17 +1286,7 @@
if (result != null)
{
stockInfoList = stockInfoList.Where(x => x != result).ToList();
- if (stockInfos.IsNullOrEmpty())
- {
- foreach (var item in stockInfoList)
- {
- _simpleCacheService.HashAdd(WIDESEA_Cache.CacheConst.Cache_DtStockInfo, item.PalletCode, item);
- }
- }
- else
- {
- _simpleCacheService.HashDel<DtStockInfo>(WIDESEA_Cache.CacheConst.Cache_DtStockInfo, new string[] { result.PalletCode });
- }
+ _simpleCacheService.HashDel<DtStockInfo>(WIDESEA_Cache.CacheConst.Cache_DtStockInfo, new string[] { result.PalletCode });
}
return result;
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs
index 1e38ec0..29a2d05 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs
@@ -26,6 +26,7 @@
using WIDESEA_DTO.WMS;
using static NewLife.Remoting.ApiHttpClient;
using NewLife.Windows;
+using WIDESEA_Core.Enums;
var builder = WebApplication.CreateBuilder(args);
@@ -198,6 +199,16 @@
var redis = app.Services.CreateScope().ServiceProvider.GetService<ISimpleCacheService>(); //获取redis服务
// 删除redis的key
redis.DelByPattern(CacheConst.Cache_Prefix);
+
+ WIDESEA_Core.Helper.ConsoleHelper.WriteInfoLine("正在缓存库存信息");
+ var stockInfoList = await SqlSugarHelper.DbWMS.Queryable<DtStockInfo>()
+ .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock).IncludesAllFirstLayer().ToListAsync();
+ // 缓存库存信息
+ foreach (var item in stockInfoList)
+ {
+ redis.HashAdd(CacheConst.Cache_DtStockInfo, item.PalletCode, item);
+ }
+ WIDESEA_Core.Helper.ConsoleHelper.WriteInfoLine("缓存库存信息完成");
}
app.Run();
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
index 8460061..2ec3278 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
@@ -11,9 +11,9 @@
//杩炴帴瀛楃涓�
//"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
//"ConnectionString": "Data Source=192.168.5.251;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
- "ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WMS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+ //"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WMS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
- //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WMSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+ "ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WMSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//"ConnectionStringWCS": "Data Source=192.168.5.251;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
"ConnectionStringWCS": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCSDB;User ID=sa;Password=sa123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
//璺ㄥ煙
--
Gitblit v1.9.3