Эх сурвалжийг харах

Merge branch 'test' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend into dengfei

695593266@qq.com 11 сар өмнө
parent
commit
b41e07c034

+ 9 - 0
src/api/factoryModel/index.js

@@ -208,3 +208,12 @@ export async function getVendorPageList(params) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+
+// 编码是否存在
+export async function codeExists(code) {
+  const res = await request.get(`/main/factoryworkstation/codeExists/${code}`);
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}

+ 13 - 3
src/components/upload/import-dialogNew.vue

@@ -37,7 +37,13 @@
     </el-form>
     <div slot="footer" class="dialog-footer">
       <el-button size="small" @click="dialogVisible = false">关 闭</el-button>
-      <el-button size="small" @click="upload" type="primary">上 传</el-button>
+      <el-button
+        size="small"
+        @click="upload"
+        :loading="uploading"
+        type="primary"
+        >上 传</el-button
+      >
     </div>
   </el-dialog>
 </template>
@@ -45,7 +51,7 @@
 <script>
   import { importBatch } from '@/api/system/file/index.js';
   // import { download1 } from '@/utils/file';
-  import {downLoadTemplateNew } from '@/api/system/file/index.js';
+  import { downLoadTemplateNew } from '@/api/system/file/index.js';
   export default {
     props: {
       // eslint-disable-next-line vue/require-prop-type-constructor
@@ -57,6 +63,7 @@
     //注册组件
     data() {
       return {
+        uploading: false,
         showViewer: false, // 显示查看器
         dialogVisible: false,
         uploadShow: false,
@@ -96,11 +103,14 @@
           return this.$message.warning('文件不能为空!');
         }
         this.module = this.$props.defModule;
-
+        this.uploading = true;
         await importBatch({
           module: this.module,
           multiPartFiles: this.attaments
+        }).finally(() => {
+          this.uploading = false;
         });
+
         this.$message.success('操作成功!');
         this.dialogVisible = false;
         this.$emit('success');

+ 7 - 13
src/main.js

@@ -6,10 +6,7 @@ import store from './store';
 import router from './router';
 import permission from './utils/permission';
 
-import {
-  MAP_KEY,
-  LICENSE_CODE
-} from '@/config/setting';
+import { MAP_KEY, LICENSE_CODE } from '@/config/setting';
 import EleAdmin from 'ele-admin';
 import VueClipboard from 'vue-clipboard2';
 import i18n from './i18n';
@@ -21,19 +18,18 @@ import TinymceEditor from '@/components/TinymceEditor/index.vue';
 // import SvgIcon from '@/components/FormGenerator/components/SvgIcon'; // svg component
 import HeaderTitle from '@/components/header-title';
 import authSelection from '@/components/authSelection';
-import permissionccc from '@/utils/permissionccc.js'
+import permissionccc from '@/utils/permissionccc.js';
 
-Vue.directive('permissionccc',permissionccc)
+Vue.directive('permissionccc', permissionccc);
 Vue.component('HeaderTitle', HeaderTitle);
 Vue.component('authSelection', authSelection);
 
-
 import Print from 'vue-printjs';
 Vue.use(Print);
 
 // 公共搜索文件
 import seekPage from '@/components/common/seekPage';
-Vue.component('seekPage', seekPage)
+Vue.component('seekPage', seekPage);
 
 // // register globally
 Vue.component('tinymce', TinymceEditor);
@@ -91,10 +87,8 @@ Vue.use(VueClipboard);
 let instance = null;
 
 function render(props = {}) {
-  const {
-    container,
-    routerBase
-  } = props;
+  const { container, routerBase, fileMain } = props;
+  Vue.component('fileMain', fileMain);
   // const router = new VueRouter({
   //   base: window.__POWERED_BY_QIANKUN__ ? routerBase : process.env.BASE_URL,
   //   mode: 'history',
@@ -121,7 +115,7 @@ export async function bootstrap() {
 export async function mount(props) {
   console.log('[vue] props from main framework', props);
   Vue.prototype.$portalStore = props.store;
-  initParentStore(props.store ?.state);
+  initParentStore(props.store?.state);
   props.onGlobalStateChange((state, prev) => {
     // state: 变更后的状态; prev 变更前的状态
     initParentStore(state);

+ 2 - 2
src/views/documentManagement/certificateManagement/components/add-dialog.vue

@@ -158,7 +158,7 @@
 <script>
   import staffSelection from './staffSelection.vue';
   import { saveOrEdit, getPhotoInfo } from '@/api/documentManagement';
-  import fileMain from '@/components/addDoc/index.vue';
+  // import fileMain from '@/components/addDoc/index.vue';
 
   import { getCode } from '@/api/ruleManagement/matter';
   import productTable from './productTable.vue';
@@ -182,7 +182,7 @@
       productTable,
       supplierSelection,
       customerSelection,
-      fileMain
+      // fileMain
     },
     //注册组件
     data() {

+ 2 - 2
src/views/documentManagement/certificateManagement/components/detail-dialog.vue

@@ -85,12 +85,12 @@
 <script>
   import { getPhotoInfo } from '@/api/documentManagement';
   import dictMixins from '@/mixins/dictMixins';
-  import fileMain from '@/components/addDoc/index.vue';
+  // import fileMain from '@/components/addDoc/index.vue';
   import bpmDetail from '@/views/bpm/processInstance/businessDetail.vue';
 
   export default {
     mixins: [dictMixins],
-    components: { fileMain,bpmDetail },
+    components: { bpmDetail },
     //注册组件
     data() {
       return {

+ 2 - 2
src/views/documentManagement/certificateManagement/index.vue

@@ -117,12 +117,12 @@
   import { getImageUrl } from '@/utils/file.js';
   import { deepClone } from '@/utils';
   import { holderTypeOptions } from '@/enum/dict.js';
-  import fileMain from '@/components/addDoc/index.vue';
+  // import fileMain from '@/components/addDoc/index.vue';
   import { reviewStatus } from '@/enum/dict';
 
   export default {
     mixins: [dictMixins, tabMixins],
-    components: { certificateSearch, addDialog, detailDialog, fileMain,processSubmitDialog },
+    components: { certificateSearch, addDialog, detailDialog,processSubmitDialog },
     data() {
       return {
         processSubmitDialogFlag:false,

+ 1 - 1
src/views/factoryModel/factoryManagement/index.vue

@@ -44,7 +44,7 @@
           </el-link>
           <el-popconfirm
             class="ele-action"
-            title="确定要删除此角色吗?"
+            title="确定要删除此工厂吗?"
             @confirm="remove(row)"
             v-if="$hasPermission('main:factoryarea:delete')"
 

+ 128 - 98
src/views/factoryModel/station/components/codeDialog.vue

@@ -1,125 +1,155 @@
 <template>
-    <ele-modal title="自定义编码" :visible.sync="visible" :before-close="handleClose" :close-on-click-modal="false"
-        :close-on-press-escape="false" append-to-body width="40%" :maxable="true">
-        <el-form label-width="120px" ref="formRef" :model="formData" :rules="rules" class="rx-sc">
-
-
-
-            <el-form-item label="">
-                <el-input v-model="formData.leave" readonly style="width: 120px;margin-left: 8px;"></el-input>
-            </el-form-item>
-
-
-            <span>-</span>
-            <el-form-item label="" prop="leave2">
-                <DictSelection :ChinEng="true" dictName="工位编码" clearable v-model="formData.leave2">
-                </DictSelection>
-            </el-form-item>
-
-            <span>-</span>
-
-            <el-form-item label="" prop="code">
-                <el-input v-model="formData.code" maxlength="3" placeholder="流水号"
-                    style="width: 120px;margin-left: 8px;"></el-input>
-            </el-form-item>
-
-
-
-
-
-
-        </el-form>
-        <div class="des">工位编码规则,例如:GW-PL(本级)-0001 </div>
-
-        <template v-slot:footer>
-            <el-button @click="handleClose">取消</el-button>
-            <el-button type="primary" @click="save" :loading="loading">
-                保存
-            </el-button>
-        </template>
-
-    </ele-modal>
+  <ele-modal
+    title="自定义编码"
+    :visible.sync="visible"
+    :before-close="handleClose"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    append-to-body
+    width="40%"
+    :maxable="true"
+  >
+    <el-form
+      label-width="120px"
+      ref="formRef"
+      :model="formData"
+      :rules="rules"
+      class="rx-sc"
+    >
+      <el-form-item label="">
+        <el-input
+          v-model="formData.leave"
+          readonly
+          style="width: 120px; margin-left: 8px"
+        ></el-input>
+      </el-form-item>
+
+      <span>-</span>
+      <el-form-item label="" prop="leave2">
+        <DictSelection
+          :ChinEng="true"
+          dictName="工位编码"
+          clearable
+          v-model="formData.leave2"
+        >
+        </DictSelection>
+      </el-form-item>
+
+      <span>-</span>
+
+      <el-form-item label="" prop="code">
+        <el-input
+          v-model="formData.code"
+          maxlength="3"
+          placeholder="流水号"
+          style="width: 120px; margin-left: 8px"
+        ></el-input>
+      </el-form-item>
+    </el-form>
+    <div class="des">工位编码规则,例如:GW-PL(本级)-0001 </div>
+
+    <template v-slot:footer>
+      <el-button @click="handleClose">取消</el-button>
+      <el-button type="primary" @click="save" :loading="loading">
+        保存
+      </el-button>
+    </template>
+  </ele-modal>
 </template>
-  
+
 <script>
+  import { codeExists } from '@/api/factoryModel';
 
-export default {
+  export default {
     data() {
-        return {
-            visible: true,
-            loading: false,
+      return {
+        visible: true,
+        loading: false,
 
-            formData: {
-                leave: 'GW',
-                leave2: null,
+        formData: {
+          leave: 'GW',
+          leave2: null,
 
-                code: null
-            },
+          code: null
+        },
+
+        rules: {
+          leave2: { required: true, message: '请选择', trigger: 'change' },
 
-            rules: {
-                leave2: { required: true, message: '请选择', trigger: 'change' },
-   
-                code: [
-                    { required: true, message: '请输入流水号', trigger: 'blur' },
-                    {
-                        pattern: /^\d{3}$/,
-                        message: '请输入三位数的流水号'
-                    }
-                ]
-            }
+          code: [
+            { required: true, message: '请输入流水号', trigger: 'blur' },
+            {
+              pattern: /^\d{3}$/,
+              message: '请输入三位数的流水号'
+            },
+            { validator: this.codeExist, trigger: 'blur' }
+          ]
         }
+      };
     },
 
-    watch: {
-
-    },
+    watch: {},
     methods: {
-
-        handleClose() {
-            this.$emit('close')
-
-        },
-
-        save() {
-            this.$refs.formRef.validate((valid) => {
-                if (!valid) {
-                    return false;
-                }
-                let code = this.formData.leave + '-' + this.formData.leave2 + '-'  + this.formData.code
-                this.$emit('chooseCode', code)
-                this.handleClose()
-
-
-            })
-        },
-
-
+      async codeExist(rule, value, callback) {
+        debugger;
+        const stationCode =
+          this.formData.leave +
+          '-' +
+          this.formData.leave2 +
+          '-' +
+          this.formData.code;
+        const result = await codeExists(stationCode);
+        console.log('result:', result);
+        if (result.data) {
+          callback(new Error('编码已存在!'));
+        } else {
+          callback();
+        }
+      },
+
+      handleClose() {
+        this.$emit('close');
+      },
+
+      save() {
+        this.$refs.formRef.validate((valid) => {
+          if (!valid) {
+            return false;
+          }
+          let code =
+            this.formData.leave +
+            '-' +
+            this.formData.leave2 +
+            '-' +
+            this.formData.code;
+          this.$emit('chooseCode', code);
+          this.handleClose();
+        });
+      }
     }
-}
+  };
 </script>
-  
+
 <style lang="scss" scoped>
-.row_flex {
+  .row_flex {
     display: flex;
     flex-direction: row;
     align-items: center;
-}
+  }
 
-::v-deep .el-form-item__content {
+  ::v-deep .el-form-item__content {
     margin: 0 8px !important;
-}
+  }
 
-::v-deep .el-form-item {
+  ::v-deep .el-form-item {
     margin-bottom: 0px;
-}
+  }
 
-::v-deep .el-form-item:last-child {
+  ::v-deep .el-form-item:last-child {
     margin-bottom: 0px !important;
+  }
 
-}
-
-.des {
+  .des {
     margin-top: 20px;
-}
+  }
 </style>
-  

+ 3 - 3
src/views/material/BOMmanage/components/replaceMaterialPop.vue

@@ -47,7 +47,7 @@
       </template>
 
       <template v-slot:bomArtFiles="{ row }">
-        <fileUpload v-model="row.bomArtFiles" type="add" size="mini" />
+        <fileMain v-model="row.bomArtFiles" type="add" size="mini" />
       </template>
 
       <template v-slot:remark="{ row }">
@@ -72,11 +72,11 @@
   </el-dialog>
 </template>
 <script>
-  import fileUpload from '@/components/addDoc/index.vue';
+  // import fileUpload from '@/components/addDoc/index.vue';
   import ProductModalMultiple from './ProductModalMultiple.vue';
   export default {
     components: {
-      fileUpload,
+      // fileUpload,
       ProductModalMultiple
     },
     props: {

+ 3 - 3
src/views/material/BOMmanage/components/workingProcedure.vue

@@ -332,7 +332,7 @@
             </template>
 
             <template v-slot:bomArtFiles="{ row }">
-              <fileUpload v-model="row.bomArtFiles" type="add" size="mini" />
+              <fileMain v-model="row.bomArtFiles" type="add" size="mini" />
             </template>
 
             <template v-slot:remark="{ row }">
@@ -485,7 +485,7 @@
 import dictMixins from '@/mixins/dictMixins';
 import * as dayjs from 'dayjs';
 import { getFile } from '@/api/system/file';
-import fileUpload from '@/components/addDoc/index.vue';
+// import fileUpload from '@/components/addDoc/index.vue';
 import { workingProcedureUpdate } from '@/api/material/BOM';
 import ParamModal from '@/views/technology/productParam/components/ParamModal.vue';
 import ProductModal from '@/components/select/bom/ProductModal.vue';
@@ -503,7 +503,7 @@ export default {
   components: {
     userSearch,
     ParamModal,
-    fileUpload,
+    // fileUpload,
     ProductModal,
     jobDialog,
     ProductModalMultiple,

+ 2 - 2
src/views/material/BOMmanage/components/workmanship.vue

@@ -149,14 +149,14 @@
                 >
                   详情
                 </el-link>
-                <el-link
+                <!-- <el-link
                   type="primary"
                   :underline="false"
                   icon="el-icon-setting"
                   @click="openStepConfigure(row)"
                 >
                   配置
-                </el-link>
+                </el-link> -->
                 <el-popconfirm
                   class="ele-action"
                   title="确定要删除当前参数吗?"

+ 35 - 10
src/views/material/product/components/index-data.vue

@@ -27,14 +27,14 @@
           icon="el-icon-plus"
           class="ele-btn-icon"
           @click="openEdit({}, 2)"
-          v-if="$hasPermission('main:categoryparam:save')"
+          v-if="$hasPermission('main:category:save')"
         >
           新建
         </el-button>
 
         <div
           class="upload"
-          v-if="rootTreeId == 6 && $hasPermission('main:categoryparam:update')"
+          v-if="rootTreeId == 6 && $hasPermission('main:category:update')"
         >
           <el-upload
             v-if="!isLoading"
@@ -67,7 +67,7 @@
         </div>
 
         <el-button
-          v-if="$hasPermission('main:categoryparam:update') && rootTreeId != 6"
+          v-if="$hasPermission('main:category:update') && rootTreeId != 6"
           type="primary"
           size="small"
           icon="el-icon-upload2"
@@ -79,7 +79,8 @@
           type="warning"
           icon="el-icon-download"
           size="mini"
-          @click="handleExport"
+          @click="handleExport()"
+          :loading="exportLoading"
           >导出</el-button
         >
         <el-button
@@ -88,7 +89,7 @@
           icon="el-icon-thumb"
           class="ele-btn-icon"
           @click="moveTo()"
-          v-if="$hasPermission('main:categoryparam:update')"
+          v-if="$hasPermission('main:category:update')"
         >
           设置采购员
         </el-button>
@@ -142,7 +143,7 @@
           type="primary"
           :underline="false"
           @click="openEdit(row, 1)"
-          v-if="$hasPermission('main:categoryparam:save')"
+          v-if="$hasPermission('main:category:save')"
         >
           复制
         </el-link>
@@ -150,7 +151,7 @@
           type="primary"
           :underline="false"
           @click="openEdit(row, 0)"
-          v-if="$hasPermission('main:categoryparam:update')"
+          v-if="$hasPermission('main:category:update')"
         >
           修改
         </el-link>
@@ -158,7 +159,7 @@
           class="ele-action"
           title="确定要删除此物料吗?"
           @confirm="remove(row)"
-          v-if="$hasPermission('main:categoryparam:delete')"
+          v-if="$hasPermission('main:category:delete')"
         >
           <template v-slot:reference>
             <el-link type="danger" :underline="false"> 删除 </el-link>
@@ -306,6 +307,8 @@
   import DialogMoveTo from './DialogMoveTo.vue';
   import tabMixins from '@/mixins/tableColumnsMixin';
   import { produceTypeList } from '@/enum/dict.js';
+  import request from '@/utils/request';
+  import { download } from '@/utils/file';
   const attributeList = [
     {
       label: '总装',
@@ -377,6 +380,7 @@
     },
     data() {
       return {
+        exportLoading: false,
         moudleName: 'mainCategory',
 
         errorData: [],
@@ -844,8 +848,29 @@
       },
       /** 导出按钮操作 */
       handleExport() {
-        exportFile(this.whereData);
-        console.log(this.whereData, 'whereForm');
+        debugger;
+        const data = this.whereData;
+        if (!data || data === {} || !data.categoryLevelId) {
+          this.$message.warning('请选择物品类别');
+          return;
+        }
+        this.exportLoading = true;
+        request
+          .post('/main/category/export', data, {
+            responseType: 'blob'
+          })
+          .then((res) => {
+            debugger;
+            download(res.data, '产品/物品数据.xlsx');
+          })
+          .catch((e) => {
+            console.error(e);
+          })
+          .finally(() => {
+            this.exportLoading = false;
+          });
+        /*exportFile(this.whereData);
+        console.log(this.whereData, 'whereForm');*/
       },
       /** 下载模板操作 */
       importTemplate() {

+ 3 - 3
src/views/rulesManagement/meteringManagement/index.vue

@@ -179,9 +179,9 @@
         this.getPages();
       },
       addType(type) {
-        if (!this.currentObj.id) {
-          return this.$message.warning('请选择分类');
-        }
+        // if (!this.currentObj.id) {
+        //   return this.$message.warning('请选择分类');
+        // }
         if (type == '新增') {
           this.$refs.typeDialogRef.open(type);
         } else {

+ 6 - 3
src/views/system/dictionary/index.vue

@@ -9,7 +9,6 @@
           icon="el-icon-plus"
           class="ele-btn-icon"
           v-if="$hasPermission('main:dictionary:save')"
-
           @click="openEdit()"
         >
           添加
@@ -32,7 +31,6 @@
           :disabled="!current"
           @click="remove"
           v-if="$hasPermission('main:dictionary:delete')"
-
         >
           删除
         </el-button>
@@ -49,12 +47,13 @@
           :datasource="datasource"
           height="calc(100vh - 350px)"
           :need-page="false"
-          :toolkit="[]"
           :current.sync="current"
           highlight-current-row
           class="dict-table"
           tool-class="ele-toolbar-actions"
           @done="done"
+          @columns-change="handleColumnChange"
+          :cache-key="cacheKeyUrl"
         >
           <!-- 表头工具栏 -->
           <template v-slot:toolbar> </template>
@@ -76,12 +75,16 @@
   import DictEdit from './components/dict-edit.vue';
   import DictDataSearch from './components/dict-data-search.vue';
   import { listDictionaries, removeDictionary } from '@/api/system/dictionary';
+  import tabMixins from '@/mixins/tableColumnsMixin';
 
   export default {
     name: 'SystemDictionary',
     components: { DictData, DictEdit, DictDataSearch },
+    mixins: [tabMixins],
+
     data() {
       return {
+        cacheKeyUrl: 'main-ad4181af-syste-dictionary',
         // 表格列配置
         columns: [
           {

+ 1 - 1
src/views/versionManage/index.vue

@@ -78,7 +78,7 @@
           <el-popconfirm
             v-if="row.status!=1&&$hasPermission('main:version:delete')"
             class="ele-action"
-            title="确定要删除当前资质吗?"
+            title="确定要删除当前版本规则吗?"
             @confirm="remove(row)"
           >
             <template v-slot:reference>

+ 1 - 1
src/views/workforceManagement/schedule/index.vue

@@ -225,7 +225,7 @@
         };
         teamqueueUpdate(param)
           .then((msg) => {
-            this.$message.success(message);
+            this.$message.success(msg);
             this.done();
           })
           .catch((e) => {

+ 1 - 2
vue.config.js

@@ -32,11 +32,10 @@ module.exports = {
     proxy: {
       // 当我们的本地的请求 有/api的时候,就会代理我们的请求地址向另外一个服务器发出请求
       '/api': {
-        // target: 'http://192.168.1.105:18086',
+        target: 'http://192.168.1.105:18086',
         // target: 'http://192.168.1.158:18086',
         // target: 'http://192.168.1.176:18086',
         // target: 'http://192.168.1.251:18086',
-        target: 'http://192.168.1.125:18086',
 
         changeOrigin: true, // 只有这个值为true的情况下 才表示开启跨域
         pathRewrite: {