Browse Source

Merge branch 'dev' of depot-qinghai/depot-vue-qinghai into master

hanqingsong 6 months ago
parent
commit
93f888a911
45 changed files with 597 additions and 253 deletions
  1. 41 0
      build/build-test.js
  2. 145 0
      build/webpack.test.conf.js
  3. 1 0
      config/dev.env.js
  4. 21 1
      config/index.js
  5. 1 1
      config/prod.env.js
  6. 5 0
      config/test.env.js
  7. 1 1
      index.html
  8. 2 1
      package.json
  9. 18 0
      src/api/base/clearance.js
  10. 13 15
      src/api/deviceManagement/index.js
  11. 6 17
      src/api/facilitiesManagement/index.js
  12. 5 5
      src/components/common/header.vue
  13. 71 59
      src/components/common/topMenu.vue
  14. 0 1
      src/page/CostStandard/index.vue
  15. 15 1
      src/page/Layout/layout.vue
  16. 16 13
      src/page/basicData/components/clearanceConfirmationListEdit.vue
  17. 4 3
      src/page/basicData/components/equipmentEquipmentPoolListEdit.vue
  18. 51 29
      src/page/basicData/components/warehouseListEdit.vue
  19. 20 2
      src/page/basicData/equipmentEquipmentPoolList.vue
  20. 4 2
      src/page/basicData/storehouseList.vue
  21. 4 2
      src/page/basicData/warehouseList.vue
  22. 1 1
      src/page/customerManagement/customerArchives.vue
  23. 2 2
      src/page/decisionSupport/inventorySupervisionStatistics.vue
  24. 8 7
      src/page/deviceManagement/components/edit/index.vue
  25. 1 3
      src/page/facilitiesManagement/components/facilitiesMaintenanceEdit.vue
  26. 3 0
      src/page/facilitiesManagement/components/facilitiesRepairEdit.vue
  27. 2 2
      src/page/facilitiesManagement/facilitiesBaseInfo.vue
  28. 1 0
      src/page/intelligentStorage/components/deviceControlEdit.vue
  29. 7 1
      src/page/intelligentStorage/components/quantityDetectionDeviceConfigEdit.vue
  30. 3 1
      src/page/intelligentStorage/multifunctionalGrainInfo.vue
  31. 1 1
      src/page/intelligentStorage/quantityDetectionDeviceConfig.vue
  32. 2 2
      src/page/login/index.vue
  33. 60 0
      src/page/mixin/legacyUpload.js
  34. 5 6
      src/page/receiptConfirmation/reportingInterest/index.vue
  35. 5 1
      src/page/storageQualificationData/components/informationChangesEdit.vue
  36. 5 1
      src/page/storageQualificationData/components/storageQualificationEdit.vue
  37. 4 45
      src/page/storehouseManagement/components/hazardControlEdit.vue
  38. 19 11
      src/page/storehouseManagement/storehouseBaseInfo.vue
  39. 16 11
      src/page/storehouseManagement/temperatureInspection.vue
  40. 1 1
      src/router/index.js
  41. 3 0
      src/store/index.js
  42. 1 1
      src/utils/menuMock.js
  43. 3 3
      src/utils/systemUtils.js
  44. BIN
      static/file/货位信息导入模板.xlsx
  45. BIN
      static/file/货位信息导入模板_v1.xlsx

+ 41 - 0
build/build-test.js

@@ -0,0 +1,41 @@
1
+'use strict'
2
+require('./check-versions')()
3
+
4
+process.env.NODE_ENV = 'test'
5
+
6
+const ora = require('ora')
7
+const rm = require('rimraf')
8
+const path = require('path')
9
+const chalk = require('chalk')
10
+const webpack = require('webpack')
11
+const config = require('../config')
12
+const webpackConfig = require('./webpack.test.conf')
13
+
14
+const spinner = ora('building for test...')
15
+spinner.start()
16
+
17
+rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => {
18
+  if (err) throw err
19
+  webpack(webpackConfig, (err, stats) => {
20
+    spinner.stop()
21
+    if (err) throw err
22
+    process.stdout.write(stats.toString({
23
+      colors: true,
24
+      modules: false,
25
+      children: false, // If you are using ts-loader, setting this to true will make TypeScript errors show up during build.
26
+      chunks: false,
27
+      chunkModules: false
28
+    }) + '\n\n')
29
+
30
+    if (stats.hasErrors()) {
31
+      console.log(chalk.red('  Build failed with errors.\n'))
32
+      process.exit(1)
33
+    }
34
+
35
+    console.log(chalk.cyan('  Build complete.\n'))
36
+    console.log(chalk.yellow(
37
+      '  Tip: built files are meant to be served over an HTTP server.\n' +
38
+      '  Opening index.html over file:// won\'t work.\n'
39
+    ))
40
+  })
41
+})

+ 145 - 0
build/webpack.test.conf.js

@@ -0,0 +1,145 @@
1
+'use strict'
2
+const path = require('path')
3
+const utils = require('./utils')
4
+const webpack = require('webpack')
5
+const config = require('../config')
6
+const merge = require('webpack-merge')
7
+const baseWebpackConfig = require('./webpack.base.conf')
8
+const CopyWebpackPlugin = require('copy-webpack-plugin')
9
+const HtmlWebpackPlugin = require('html-webpack-plugin')
10
+const ExtractTextPlugin = require('extract-text-webpack-plugin')
11
+const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
12
+const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
13
+
14
+const env = require('../config/test.env')
15
+
16
+const webpackConfig = merge(baseWebpackConfig, {
17
+  module: {
18
+    rules: utils.styleLoaders({
19
+      sourceMap: config.build_test.productionSourceMap,
20
+      extract: true,
21
+      usePostCSS: true
22
+    })
23
+  },
24
+  devtool: config.build_test.productionSourceMap ? config.build_test.devtool : false,
25
+  output: {
26
+    path: config.build_test.assetsRoot,
27
+    filename: utils.assetsPath('js/[name].[chunkhash].js'),
28
+    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
29
+  },
30
+  plugins: [
31
+    // http://vuejs.github.io/vue-loader/en/workflow/production.html
32
+    new webpack.DefinePlugin({
33
+      'process.env': env
34
+    }),
35
+    new UglifyJsPlugin({
36
+      uglifyOptions: {
37
+        compress: {
38
+          warnings: false
39
+        }
40
+      },
41
+      sourceMap: config.build_test.productionSourceMap,
42
+      parallel: true
43
+    }),
44
+    // extract css into its own file
45
+    new ExtractTextPlugin({
46
+      filename: utils.assetsPath('css/[name].[contenthash].css'),
47
+      // Setting the following option to `false` will not extract CSS from codesplit chunks.
48
+      // Their CSS will instead be inserted dynamically with style-loader when the codesplit chunk has been loaded by webpack.
49
+      // It's currently set to `true` because we are seeing that sourcemaps are included in the codesplit bundle as well when it's `false`,
50
+      // increasing file size: https://github.com/vuejs-templates/webpack/issues/1110
51
+      allChunks: true,
52
+    }),
53
+    // Compress extracted CSS. We are using this plugin so that possible
54
+    // duplicated CSS from different components can be deduped.
55
+    new OptimizeCSSPlugin({
56
+      cssProcessorOptions: config.build_test.productionSourceMap
57
+        ? { safe: true, map: { inline: false } }
58
+        : { safe: true }
59
+    }),
60
+    // generate dist index.html with correct asset hash for caching.
61
+    // you can customize output by editing /index.html
62
+    // see https://github.com/ampedandwired/html-webpack-plugin
63
+    new HtmlWebpackPlugin({
64
+      filename: config.build_test.index,
65
+      template: 'index.html',
66
+      inject: true,
67
+      minify: {
68
+        removeComments: true,
69
+        collapseWhitespace: true,
70
+        removeAttributeQuotes: true
71
+        // more options:
72
+        // https://github.com/kangax/html-minifier#options-quick-reference
73
+      },
74
+      // necessary to consistently work with multiple chunks via CommonsChunkPlugin
75
+      chunksSortMode: 'dependency'
76
+    }),
77
+    // keep module.id stable when vendor modules does not change
78
+    new webpack.HashedModuleIdsPlugin(),
79
+    // enable scope hoisting
80
+    new webpack.optimize.ModuleConcatenationPlugin(),
81
+    // split vendor js into its own file
82
+    new webpack.optimize.CommonsChunkPlugin({
83
+      name: 'vendor',
84
+      minChunks (module) {
85
+        // any required modules inside node_modules are extracted to vendor
86
+        return (
87
+          module.resource &&
88
+          /\.js$/.test(module.resource) &&
89
+          module.resource.indexOf(
90
+            path.join(__dirname, '../node_modules')
91
+          ) === 0
92
+        )
93
+      }
94
+    }),
95
+    // extract webpack runtime and module manifest to its own file in order to
96
+    // prevent vendor hash from being updated whenever app bundle is updated
97
+    new webpack.optimize.CommonsChunkPlugin({
98
+      name: 'manifest',
99
+      minChunks: Infinity
100
+    }),
101
+    // This instance extracts shared chunks from code splitted chunks and bundles them
102
+    // in a separate chunk, similar to the vendor chunk
103
+    // see: https://webpack.js.org/plugins/commons-chunk-plugin/#extra-async-commons-chunk
104
+    new webpack.optimize.CommonsChunkPlugin({
105
+      name: 'app',
106
+      async: 'vendor-async',
107
+      children: true,
108
+      minChunks: 3
109
+    }),
110
+
111
+    // copy custom static assets
112
+    new CopyWebpackPlugin([
113
+      {
114
+        from: path.resolve(__dirname, '../static'),
115
+        to: config.build_test.assetsSubDirectory,
116
+        ignore: ['.*']
117
+      }
118
+    ])
119
+  ]
120
+})
121
+
122
+if (config.build_test.productionGzip) {
123
+  const CompressionWebpackPlugin = require('compression-webpack-plugin')
124
+
125
+  webpackConfig.plugins.push(
126
+    new CompressionWebpackPlugin({
127
+      asset: '[path].gz[query]',
128
+      algorithm: 'gzip',
129
+      test: new RegExp(
130
+        '\\.(' +
131
+        config.build_test.productionGzipExtensions.join('|') +
132
+        ')$'
133
+      ),
134
+      threshold: 10240,
135
+      minRatio: 0.8
136
+    })
137
+  )
138
+}
139
+
140
+if (config.build_test.bundleAnalyzerReport) {
141
+  const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
142
+  webpackConfig.plugins.push(new BundleAnalyzerPlugin())
143
+}
144
+
145
+module.exports = webpackConfig

+ 1 - 0
config/dev.env.js

@@ -4,5 +4,6 @@ const prodEnv = require('./prod.env')
4 4
 
5 5
 module.exports = {
6 6
     NODE_ENV: '"development"',
7
+    // BASE_API: '"http://172.16.0.46:9025"', //内网
7 8
    //BASE_API: '"https://easy-mock.com/mock/5a72c1ecc76727050336e0bc/mdm/"',
8 9
 }

+ 21 - 1
config/index.js

@@ -13,7 +13,27 @@ module.exports = {
13 13
     assetsSubDirectory: "static",
14 14
     assetsPublicPath: "./", //请根据自己路径配置更改
15 15
     productionSourceMap: false,
16
-    baseURL: TEST_HOST,
16
+    // baseURL: TEST_HOST,
17
+    // Gzip off by default as many popular static hosts such as
18
+    // Surge or Netlify already gzip all static assets for you.
19
+    // Before setting to `true`, make sure to:
20
+    // npm install --save-dev compression-webpack-plugin
21
+    productionGzip: false,
22
+    productionGzipExtensions: ["js", "css"],
23
+    // Run the build command with an extra argument to
24
+    // View the bundle analyzer report after build finishes:
25
+    // `npm run build --report`
26
+    // Set to `true` or `false` to always turn it on or off
27
+    bundleAnalyzerReport: process.env.npm_config_report,
28
+  },
29
+  build_test: {
30
+    prodEnv: require("./test.env"),
31
+    index: path.resolve(__dirname, "../dist/index.html"),
32
+    assetsRoot: path.resolve(__dirname, "../dist"),
33
+    assetsSubDirectory: "static",
34
+    assetsPublicPath: "./", //请根据自己路径配置更改
35
+    productionSourceMap: false,
36
+    // baseURL: TEST_HOST,
17 37
     // Gzip off by default as many popular static hosts such as
18 38
     // Surge or Netlify already gzip all static assets for you.
19 39
     // Before setting to `true`, make sure to:

+ 1 - 1
config/prod.env.js

@@ -1,5 +1,5 @@
1 1
 'use strict'
2 2
 module.exports = {
3 3
     NODE_ENV: '"production"',
4
-    BASE_API: '"http://172.16.0.46:9025"', //内网
4
+    BASE_API: '"http://172.18.93.216:80"', //内网
5 5
 };

+ 5 - 0
config/test.env.js

@@ -0,0 +1,5 @@
1
+'use strict'
2
+module.exports = {
3
+    NODE_ENV: '"test"',
4
+    BASE_API: '"http://172.16.0.46:9025"', //内网
5
+};

+ 1 - 1
index.html

@@ -6,7 +6,7 @@
6 6
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
7 7
     <link rel="ico" type="image/x-icon" href="static/favicon.ico">
8 8
     <link rel="shortcut icon" type="image/x-icon" href="static/favicon.ico">
9
-    <title>青海省粮食局</title>
9
+    <title>智慧青粮粮库管理系统</title>
10 10
 </head>
11 11
 
12 12
 <body>

+ 2 - 1
package.json

@@ -7,7 +7,8 @@
7 7
   "scripts": {
8 8
     "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
9 9
     "start": "npm run dev",
10
-    "build": "node build/build.js"
10
+    "build:prod": "node build/build.js",
11
+    "build:test": "node build/build-test.js"
11 12
   },
12 13
   "dependencies": {
13 14
     "@fortawesome/fontawesome": "^1.1.8",

+ 18 - 0
src/api/base/clearance.js

@@ -50,3 +50,21 @@ export function remove(id) {
50 50
     data: formData
51 51
   })
52 52
 }
53
+
54
+export function findStorehouse(orgId) {
55
+  const query = {orgId}
56
+  return request({
57
+    url: `${depot_qualitycheck}/ClearanceConfirmationController/findStorehouse`,
58
+    method: 'get',
59
+    params: query,
60
+  })
61
+}
62
+
63
+export function findByWarehouse(storehouseId) {
64
+  const query = {storehouseId}
65
+  return request({
66
+    url: `${depot_qualitycheck}/ClearanceConfirmationController/findByWarehouse`,
67
+    method: 'get',
68
+    params: query,
69
+  })
70
+}

+ 13 - 15
src/api/deviceManagement/index.js

@@ -2,6 +2,8 @@ import request from '@/utils/require'
2 2
 import {depot_business, depot_device} from "../index";
3 3
 import {PLUS} from "@/utils/systemUtils";
4 4
 
5
+export const importUrl = `${depot_device}/BasicEquipmentEquipmentPool/importFile`
6
+
5 7
 export function getPageInfoList(page, query) {
6 8
   return request({
7 9
     url: `${depot_device}/devicePutStorage/getPageInfoList?pageNum=${page.page}&pageSize=${page.size}`,
@@ -27,23 +29,23 @@ export function getStorePositionById(id) {
27 29
 }
28 30
 
29 31
 export function storePositionUpdate(data) {
30
-  const formData = Object.keys(data).map(k => `${k}=${encodeURIComponent(data[k])}`).join('&').replace(/_____PLACEHOLDER_PLUS_____/g, '+')
32
+  // const formData = Object.keys(data).map(k => `${k}=${encodeURIComponent(data[k])}`).join('&').replace(/_____PLACEHOLDER_PLUS_____/g, '+')
31 33
   return request({
32 34
     url: `${depot_device}/BasicEquipmentEquipmentPool/update`,
33
-    headers: {'content-type': 'application/x-www-form-urlencoded;charset=utf-8'},
35
+    // headers: {'content-type': 'application/x-www-form-urlencoded;charset=utf-8'},
34 36
     method: 'post',
35
-    data: formData,
37
+    data: data,
36 38
   })
37 39
 }
38 40
 
39 41
 export function storePositionRemove(id) {
40
-  const data = {id}
41
-  const formData = Object.keys(data).map(k => `${k}=${encodeURIComponent(data[k])}`).join('&').replace(/_____PLACEHOLDER_PLUS_____/g, '+')
42
+  // const data = {id}
43
+  // const formData = Object.keys(data).map(k => `${k}=${encodeURIComponent(data[k])}`).join('&').replace(/_____PLACEHOLDER_PLUS_____/g, '+')
42 44
   return request({
43
-    url: `${depot_device}/BasicEquipmentEquipmentPool/remove`,
44
-    headers: {'content-type': 'application/x-www-form-urlencoded;charset=utf-8'},
45
+    url: `${depot_device}/BasicEquipmentEquipmentPool/remove?id=${id}`,
46
+    // headers: {'content-type': 'application/x-www-form-urlencoded;charset=utf-8'},
45 47
     method: 'post',
46
-    data: formData,
48
+    // data: formData,
47 49
   })
48 50
 }
49 51
 
@@ -56,21 +58,17 @@ export function getDeviceGetList(page, query) {
56 58
 }
57 59
 
58 60
 export function save(data) {
59
-  const formData = Object.keys(data).map(k => `${k}=${encodeURIComponent(data[k])}`).join('&').replace('_____PLACEHOLDER_PLUS_____', '+')
60 61
   return request({
61 62
     url: `${depot_device}/devicePutStorage/save`,
62
-    headers: {'content-type': 'application/x-www-form-urlencoded;charset=utf-8'},
63 63
     method: 'post',
64
-    data: formData,
64
+    data: data,
65 65
   })
66 66
 }
67 67
 export function remove(data) {
68
-  const formData = Object.keys(data).map(k => `${k}=${encodeURIComponent(data[k])}`).join('&').replace('_____PLACEHOLDER_PLUS_____', '+')
68
+  const {orgId, sbbh} = data
69 69
   return request({
70
-    url: `${depot_device}/devicePutStorage/remove`,
71
-    headers: {'content-type': 'application/x-www-form-urlencoded;charset=utf-8'},
70
+    url: `${depot_device}/devicePutStorage/remove?orgId=${orgId}&sbbh=${sbbh}`,
72 71
     method: 'post',
73
-    data: formData,
74 72
   })
75 73
 }
76 74
 

+ 6 - 17
src/api/facilitiesManagement/index.js

@@ -18,33 +18,23 @@ export function facilitiesOptions(query) {
18 18
 }
19 19
 
20 20
 export function maintainSave(data) {
21
-  const formData = Object.keys(data).map(k => `${k}=${encodeURIComponent(data[k])}`).join('&').replace('_____PLACEHOLDER_PLUS_____', '+')
22 21
   return request({
23 22
     url: `${depot_device}/facilities/maintain/save`,
24
-    headers: {'content-type': 'application/x-www-form-urlencoded;charset=utf-8'},
25 23
     method: 'post',
26
-    data: formData,
24
+    data: data,
27 25
   })
28 26
 }
29 27
 
30 28
 export function maintainRemove(id) {
31
-  const data = {id}
32
-  const formData = Object.keys(data).map(k => `${k}=${encodeURIComponent(data[k])}`).join('&').replace('_____PLACEHOLDER_PLUS_____', '+')
33 29
   return request({
34
-    url: `${depot_device}/facilities/maintain/remove`,
35
-    headers: {'content-type': 'application/x-www-form-urlencoded;charset=utf-8'},
30
+    url: `${depot_device}/facilities/maintain/remove?id=${id}`,
36 31
     method: 'post',
37
-    data: formData,
38 32
   })
39 33
 }
40 34
 export function repairRemove(id) {
41
-  const data = {id}
42
-  const formData = Object.keys(data).map(k => `${k}=${encodeURIComponent(data[k])}`).join('&').replace('_____PLACEHOLDER_PLUS_____', '+')
43 35
   return request({
44
-    url: `${depot_device}/facilities/repair/remove`,
45
-    headers: {'content-type': 'application/x-www-form-urlencoded;charset=utf-8'},
36
+    url: `${depot_device}/facilities/repair/remove?id=${id}`,
46 37
     method: 'post',
47
-    data: formData,
48 38
   })
49 39
 }
50 40
 
@@ -65,12 +55,11 @@ export function repairList(page, query) {
65 55
 }
66 56
 
67 57
 export function repairSave(data) {
68
-  const formData = Object.keys(data).map(k => `${k}=${encodeURIComponent(data[k])}`).join('&').replace(/_____PLACEHOLDER_PLUS_____/g, '+')
58
+  // const formData = Object.keys(data).map(k => `${k}=${encodeURIComponent(data[k])}`).join('&').replace(/_____PLACEHOLDER_PLUS_____/g, '+')
59
+  const {dFacilitiesRepairJson} = data
69 60
   return request({
70
-    url: `${depot_device}/facilities/repair/save`,
71
-    headers: {'content-type': 'application/x-www-form-urlencoded;charset=utf-8'},
61
+    url: `${depot_device}/facilities/repair/save?dFacilitiesRepairJson=${dFacilitiesRepairJson}`,
72 62
     method: 'post',
73
-    data: formData,
74 63
   })
75 64
 }
76 65
 

+ 5 - 5
src/components/common/header.vue

@@ -18,11 +18,11 @@
18 18
             }}</span>
19 19
           </span>
20 20
           <el-dropdown-menu slot="dropdown">
21
-            <el-dropdown-item
22
-              @click.native="updatemimas"
23
-              icon="el-icon-s-promotion"
24
-              >修改密码</el-dropdown-item
25
-            >
21
+<!--            <el-dropdown-item-->
22
+<!--              @click.native="updatemimas"-->
23
+<!--              icon="el-icon-s-promotion"-->
24
+<!--              >修改密码</el-dropdown-item-->
25
+<!--            >-->
26 26
             <el-dropdown-item @click.native="logout" icon="el-icon-s-promotion"
27 27
               >退出登录</el-dropdown-item
28 28
             >

+ 71 - 59
src/components/common/topMenu.vue

@@ -1,26 +1,31 @@
1 1
 <template>
2 2
   <div class="menu-container">
3 3
     <div class="btn left-btn" @click="scrollLeft">
4
-      <img v-show="hasPrev" src="@/assets/wisdom_images/left-nav.png">
4
+      <img v-show="hasPrev" src="@/assets/wisdom_images/left-nav.png" />
5 5
     </div>
6 6
     <nav class="menu" ref="menu">
7 7
       <ul>
8
-        <li v-for="(item, index) in list" :key="index" class="menu-item" :class="{activate: $store.state.user.topMenuIndex === index}" @click="openMenu(item, index)">
8
+        <li
9
+          v-for="(item, index) in list"
10
+          :key="index"
11
+          class="menu-item"
12
+          :class="{ activate: $store.state.user.topMenuIndex === index }"
13
+          @click="openMenu(item, index)"
14
+        >
9 15
           <i :class="item.icon"></i>
10
-          {{item.funcName}}
16
+          {{ item.funcName }}
11 17
         </li>
12 18
       </ul>
13 19
     </nav>
14 20
     <div class="btn right-btn" @click="scrollRight">
15
-      <img v-show="hasNext" src="@/assets/wisdom_images/right-nav.png">
21
+      <img v-show="hasNext" src="@/assets/wisdom_images/right-nav.png" />
16 22
     </div>
17 23
   </div>
18 24
 </template>
19 25
 
20 26
 <script>
21
-
22
-const ITEM_WIDTH = 130
23
-const ITEM_BORDER = 1
27
+const ITEM_WIDTH = 130;
28
+const ITEM_BORDER = 1;
24 29
 export default {
25 30
   data() {
26 31
     return {
@@ -31,9 +36,9 @@ export default {
31 36
       funcTree: null,
32 37
       list: [
33 38
         {
34
-          icon: 'el-icon-s-home',
35
-          funcName: '首页',
36
-          funcUrl: '/home',
39
+          icon: "el-icon-s-home",
40
+          funcName: "首页",
41
+          funcUrl: "/home",
37 42
           resourceCode: null,
38 43
         },
39 44
         // {
@@ -91,14 +96,13 @@ export default {
91 96
         //   funcUrl: '/system/userManagement',
92 97
         //   resourceCode: 'RM1001008008',
93 98
         // },
94
-
95
-      ]
96
-    }
99
+      ],
100
+    };
97 101
   },
98 102
   created() {
99
-    this.visibleItems = this.list.length
103
+    this.visibleItems = this.list.length;
100 104
     // this.welcome()
101
-    this.welcome2()
105
+    this.welcome2();
102 106
     const menuCode = sessionStorage.getItem("menuCode");
103 107
     const menuData = JSON.parse(sessionStorage.getItem("xzdata"));
104 108
 
@@ -109,28 +113,26 @@ export default {
109 113
     //     }
110 114
     //   });
111 115
     // }
112
-    window.addEventListener('resize', this.updateVisibleItems);
116
+    window.addEventListener("resize", this.updateVisibleItems);
113 117
   },
114 118
   mounted() {
115 119
     this.updateVisibleItems();
116 120
     this.$nextTick(() => {
117
-      this.$refs.menu.scrollLeft = 0
118
-    })
121
+      this.$refs.menu.scrollLeft = 0;
122
+    });
119 123
   },
120 124
   beforeDestroy() {
121
-    window.removeEventListener('resize', this.updateVisibleItems);
125
+    window.removeEventListener("resize", this.updateVisibleItems);
122 126
   },
123 127
   watch: {
124
-    defaultActiveUrl (n, o) {
125
-      console.log('------', n)
126
-    }
128
+    defaultActiveUrl(n, o) {
129
+      console.log("------", n);
130
+    },
127 131
   },
128 132
   methods: {
129
-    handleSelect() {
130
-
131
-    },
133
+    handleSelect() {},
132 134
     scrollLeft() {
133
-      this.$refs.menu.scrollLeft -= (ITEM_WIDTH + 2);
135
+      this.$refs.menu.scrollLeft -= ITEM_WIDTH + 2;
134 136
       // if(this.$refs.menu.scrollLeft <= 0) {
135 137
       //   this.hasPrev = false
136 138
       // }else {
@@ -138,7 +140,7 @@ export default {
138 140
       // }
139 141
     },
140 142
     scrollRight() {
141
-      this.$refs.menu.scrollLeft += (ITEM_WIDTH + 2);
143
+      this.$refs.menu.scrollLeft += ITEM_WIDTH + 2;
142 144
       // if(this.$refs.menu.scrollLeft >= (ITEM_WIDTH + 2) * this.list.length) {
143 145
       //   this.hasNext = false
144 146
       // }else {
@@ -146,65 +148,75 @@ export default {
146 148
       // }
147 149
     },
148 150
     updateVisibleItems() {
149
-      const width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
151
+      const width =
152
+        window.innerWidth ||
153
+        document.documentElement.clientWidth ||
154
+        document.body.clientWidth;
150 155
       if (width <= 690) {
151 156
         this.visibleItems = 2;
152 157
       } else if (width <= 800) {
153 158
         this.visibleItems = 3;
154 159
       } else if (width <= 1200) {
155 160
         this.visibleItems = 4;
156
-      } else if(width <= 1400) {
161
+      } else if (width <= 1400) {
157 162
         this.visibleItems = 5;
158
-      }else if (width <= 1600) {
163
+      } else if (width <= 1600) {
159 164
         this.visibleItems = 6;
160 165
       } else {
161 166
         this.visibleItems = this.list.length;
162 167
       }
163
-      this.$refs.menu.style.width = `${this.visibleItems * ITEM_WIDTH + this.visibleItems * 2}px`;
168
+      this.$refs.menu.style.width = `${
169
+        this.visibleItems * ITEM_WIDTH + this.visibleItems * 2
170
+      }px`;
164 171
     },
165 172
     openMenu(item, index) {
166
-      console.log('open menu', item, index)
167
-      if(['crk', '/crk'].indexOf(item.funcUrl) >= 0) {
168
-        return this.$systemUtils.gotoCrkSystem(this)
173
+      console.log("open menu", item, index);
174
+      if (["crk", "/crk"].indexOf(item.funcUrl) >= 0) {
175
+        this.$store.state.flag = 1;
176
+        // return
177
+        this.$store.commit("SET_TOP_MENU_INDEX", index);
178
+        // return this.$systemUtils.gotoCrkSystem(this)
179
+      } else {
180
+        this.$store.state.flag = 2;
169 181
       }
170
-      if(this.$store.state.user.topMenuIndex === index) return
171
-      this.$store.commit('SET_TOP_MENU_INDEX', index)
182
+      if (this.$store.state.user.topMenuIndex === index) return;
183
+      this.$store.commit("SET_TOP_MENU_INDEX", index);
172 184
       // if(!item.resourceCode) {
173 185
       //   return this.$router.push({path: item.funcUrl})
174 186
       // }
175 187
 
176
-      this.getMenuList(item, index)
188
+      this.getMenuList(item, index);
177 189
     },
178 190
     welcome() {
179 191
       this.loginPeople = sessionStorage.getItem("userName");
180 192
       const data = JSON.parse(sessionStorage.getItem("xzdata"));
181
-      this.xzdata = data
182
-      this.$store.commit("SET_MENU_DATA", data)
183
-      const defaultCode = 'RM1001008001'
184
-      let leftMenuList = []
193
+      this.xzdata = data;
194
+      this.$store.commit("SET_MENU_DATA", data);
195
+      const defaultCode = "RM1001008001";
196
+      let leftMenuList = [];
185 197
       this.xzdata.forEach((item) => {
186 198
         if (item.resourceCode == defaultCode) {
187
-          leftMenuList = [item]
199
+          leftMenuList = [item];
188 200
         }
189 201
       });
190 202
       this.$store.dispatch("changeLeftMenu", leftMenuList);
191 203
     },
192 204
     welcome2() {
193 205
       const tree = JSON.parse(sessionStorage.getItem("FUN_TREE"));
194
-      this.funcTree = tree
195
-      let defaultChild = []
196
-      for(const menu of tree) {
197
-        if(defaultChild.length <= 0) {
198
-          defaultChild = menu.children
206
+      this.funcTree = tree;
207
+      let defaultChild = [];
208
+      for (const menu of tree) {
209
+        if (defaultChild.length <= 0) {
210
+          defaultChild = menu.children;
199 211
         }
200 212
         this.list.push({
201
-          icon: 'el-icon-s-home',
213
+          icon: "el-icon-s-home",
202 214
           funcName: menu.funcName,
203 215
           funcUrl: menu.funcUrl,
204 216
           funcId: menu.funcId,
205
-          resourceCode: 'RM1001008007',
206
-          children: menu.children
207
-        })
217
+          resourceCode: "RM1001008007",
218
+          children: menu.children,
219
+        });
208 220
       }
209 221
       this.$store.dispatch("changeLeftMenu", defaultChild);
210 222
     },
@@ -215,17 +227,17 @@ export default {
215 227
       if (arr[0] && arr[0].children && arr[0].children.length) {
216 228
         this.getFirstMenu(arr[0].children);
217 229
       } else {
218
-        console.log('first menu', arr[0])
230
+        console.log("first menu", arr[0]);
219 231
         this.menuUrl = arr[0].funcUrl;
220 232
       }
221 233
     },
222 234
     getMenuList(item, index) {
223
-      console.log('get menu list', item, index, )
235
+      console.log("get menu list", item, index);
224 236
       // debugger
225
-      let leftMenuList = [item];
237
+      let leftMenuList = item.children;
226 238
       if (item.children && item.children.length > 0) {
227 239
         this.getFirstMenu(item.children);
228
-        console.log('menuUrl', this.menuUrl)
240
+        console.log("menuUrl", this.menuUrl);
229 241
         this.$router.push({ path: this.menuUrl });
230 242
       } else {
231 243
         if (item.funcUrl.indexOf("http") == -1) {
@@ -238,7 +250,7 @@ export default {
238 250
       this.isClick = index;
239 251
       sessionStorage.menuIdx = index;
240 252
       // this.getFirstMenu([item]);
241
-      this.$store.commit('SET_DEFAULT_ACTIVE_URL', this.menuUrl)
253
+      this.$store.commit("SET_DEFAULT_ACTIVE_URL", this.menuUrl);
242 254
       sessionStorage.setItem("leftMenuList", JSON.stringify(leftMenuList));
243 255
       sessionStorage.setItem("menuCode", code);
244 256
       sessionStorage.setItem("resourceCode", code);
@@ -247,8 +259,8 @@ export default {
247 259
 
248 260
       this.$store.dispatch("changeLeftMenu", leftMenuList);
249 261
     },
250
-  }
251
-}
262
+  },
263
+};
252 264
 </script>
253 265
 
254 266
 
@@ -292,12 +304,12 @@ export default {
292 304
   color: white;
293 305
   height: 100%;
294 306
 }
307
+
295 308
 .menu ul {
296 309
   display: flex;
297 310
   list-style-type: none;
298 311
 }
299 312
 
300
-
301 313
 .menu-item {
302 314
   width: 130px;
303 315
   height: 100%;

+ 0 - 1
src/page/CostStandard/index.vue

@@ -68,7 +68,6 @@
68 68
         prop="standardName"
69 69
         label="标准名称"
70 70
       ></el-table-column>
71
-      </el-table-column>
72 71
       <el-table-column
73 72
         align="center"
74 73
         prop="standardType"

+ 15 - 1
src/page/Layout/layout.vue

@@ -3,6 +3,7 @@
3 3
     class="content-wrap"
4 4
     ref="wrapper"
5 5
     :style="{ height: wrapHeight + 'px' }"
6
+    v-if="$store.state.flag == 2"
6 7
   >
7 8
     <el-row>
8 9
       <!-- <BreadCrumb></BreadCrumb> -->
@@ -22,6 +23,13 @@
22 23
       </el-col>
23 24
     </el-row>
24 25
   </div>
26
+  <div v-else class="content-wrap" style="width: 100vw; height: 86vh">
27
+    <iframe
28
+      id="iframeContainer"
29
+      :src="url"
30
+      style="width: 100%; height: 100%"
31
+    ></iframe>
32
+  </div>
25 33
 </template>
26 34
 
27 35
 <script>
@@ -36,13 +44,18 @@ export default {
36 44
     // Applications
37 45
   },
38 46
   data() {
47
+    const u = localStorage.getItem("_userName");
48
+    const p = localStorage.getItem("_password");
39 49
     return {
40 50
       id: this.$route.params.id,
41 51
       dat: {
42 52
         name: "admin",
43 53
         password: "admin",
44 54
       },
55
+      u: localStorage.getItem("_userName"),
56
+      p: localStorage.getItem("_password"),
45 57
       clientHeight: document.documentElement.clientHeight,
58
+      url: `http://101.36.160.210:31055/crk/?k_username=${u}&k_password=${p}&code=1`,
46 59
     };
47 60
   },
48 61
   computed: {
@@ -50,6 +63,7 @@ export default {
50 63
       return this.clientHeight - 70 - 40;
51 64
     },
52 65
   },
66
+  watch: {},
53 67
   methods: {
54 68
     update() {
55 69
       this.clientHeight =
@@ -59,7 +73,7 @@ export default {
59 73
     },
60 74
   },
61 75
   mounted() {
62
-    console.log('layout' , this.clientHeight)
76
+    console.log("layout", this.clientHeight);
63 77
     if (!Element.prototype.matches) {
64 78
       Element.prototype.matches =
65 79
         Element.prototype.msMatchesSelector ||

+ 16 - 13
src/page/basicData/components/clearanceConfirmationListEdit.vue

@@ -107,7 +107,7 @@
107 107
 import {simpleEdit} from "@/components/simpleList/simpleEdit";
108 108
 import {houseAndWareQuery} from "@/components/simpleList";
109 109
 import {simple_required, number_required} from '@/utils/ruleDatas'
110
-import {cleSave, findByCleCon} from "@/api/base/clearance";
110
+import {cleSave, findByCleCon, findStorehouse, findByWarehouse} from "@/api/base/clearance";
111 111
 import {granaryList, granaryById, getEmptyStorehouse, getWarehouse} from "@/api/base";
112 112
 import {PLUS} from "@/utils/systemUtils";
113 113
 
@@ -181,7 +181,7 @@ export default {
181 181
     },
182 182
     getHouseOptions() {
183 183
       this.houseOptions = []
184
-      return getEmptyStorehouse({orgId: this.orgId}).then(resp => {
184
+      return findStorehouse(this.orgId).then(resp => {
185 185
         this.houseOptions = (resp || []).map(d => {
186 186
           return {
187 187
             label: d.storehouseName,
@@ -194,18 +194,21 @@ export default {
194 194
 
195 195
     getWareOptions(houseId) {
196 196
       this.wareOptions = []
197
-      return getWarehouse({unitId: this.orgId, storehouseId: houseId, libraryType: 0}).then(resp => {
198
-        const wares = resp.wares || {}
199
-        const keys = Object.keys(wares).sort((a, b) => a - b)
200
-        this.wareOptions = keys.map(k => {
201
-          const w = wares[k]
202
-          return {
203
-            label: w.warehouseName,
204
-            value: w.warehouseId,
205
-            raw: w,
206
-          }
197
+      if(houseId) {
198
+        return findByWarehouse(houseId).then(resp => {
199
+          const wares = resp || []
200
+          this.wareOptions = wares.map(w => {
201
+            return {
202
+              label: w.warehouseName,
203
+              value: w.warehouseId,
204
+              raw: w,
205
+            }
206
+          })
207 207
         })
208
-      })
208
+      }else {
209
+        this.wareOptions = []
210
+      }
211
+
209 212
     },
210 213
 
211 214
     houseChanged(n) {

+ 4 - 3
src/page/basicData/components/equipmentEquipmentPoolListEdit.vue

@@ -60,11 +60,12 @@ export default {
60 60
       return getStorePositionById
61 61
     },
62 62
     getLocalData() {
63
-      return {
64
-        poolJson: JSON.stringify(this.form),
63
+      const d = {
64
+        ... this.form,
65 65
         orgId: this.orgId,
66
-        userId: this.userId,
66
+        inputPersonId: this.userId,
67 67
       }
68
+      return d
68 69
     },
69 70
     getSaveFun() {
70 71
       return storePositionUpdate

+ 51 - 29
src/page/basicData/components/warehouseListEdit.vue

@@ -71,7 +71,7 @@
71 71
           <template>
72 72
             <el-col :span="8">
73 73
               <el-form-item label="统一货位编码" prop="tyhwbm">
74
-                <el-input v-model="form.tyhwbm" :readonly="readonly || isEdit" />
74
+                <el-input v-model="form.tyhwbm" disabled placeholder="保存后生成" />
75 75
               </el-form-item>
76 76
             </el-col>
77 77
 
@@ -251,6 +251,7 @@ export default {
251 251
       orgNameDEl: "",
252 252
       aisleId: null,
253 253
       ajdh: null,
254
+      tyajbm: null,
254 255
       gaojOption: [],
255 256
       form: {
256 257
         warehouseCode: "",
@@ -263,13 +264,17 @@ export default {
263 264
         warehouseCode: number_data_del_tw,
264 265
         warehouseUseTime: simple_required,
265 266
         warehouseCapacity: simple_required,
266
-        tyhwbm: simple_required,
267
+        // tyhwbm: simple_required,
267 268
       },
268 269
     };
269 270
   },
270 271
   created() {},
271 272
   methods: {
272 273
     setUp() {
274
+      this.tyajbm = null
275
+      this.aisleId = null
276
+      this.ajdh = null
277
+      this.gaojOption = []
273 278
       this.initHouseIdNameMap("storehouseId");
274 279
       this.initOrgIdNameMap();
275 280
       this.initHouseOptions();
@@ -280,7 +285,13 @@ export default {
280 285
     parseResp(resp) {
281 286
       console.log("resp", resp);
282 287
       resp.houseName = parseInt(resp.houseName);
283
-      this.getFileAojianGet({ orgId: this.orgId, cfid: resp.storehouseId });
288
+      this.aisleId = resp.aisleId
289
+      this.getFileAojianGet({ unitId: this.orgId, storehouseId: resp.storehouseId, libraryType: 0 }).then(_ => {
290
+        const h = this.gaojOption.find((d) => d.id === resp.aisleId);
291
+        if(h) {
292
+          this.tyajbm = h.tyajbm
293
+        }
294
+      })
284 295
       return resp;
285 296
     },
286 297
 
@@ -310,9 +321,11 @@ export default {
310 321
         console.log("3333", h);
311 322
         this.ajmc = h.ajmc;
312 323
         this.ajdh = h.ajdh;
324
+        this.tyajbm = h.tyajbm
313 325
       }else {
314 326
         this.ajmc = null
315 327
         this.ajdh = null
328
+        this.tyajbm = null
316 329
       }
317 330
 
318 331
     },
@@ -365,6 +378,7 @@ export default {
365 378
       return {
366 379
         warehouseJson: JSON.stringify(data),
367 380
         fileIds: '[]',
381
+        tyajbm: this.tyajbm,
368 382
       };
369 383
     },
370 384
     checkWareCode() {
@@ -381,38 +395,46 @@ export default {
381 395
         })
382 396
       }
383 397
     },
398
+
399
+    async doSave() {
400
+      const data = this.getLocalData();
401
+
402
+      const fd = new FormData();
403
+      for (const key in data) {
404
+        fd.append(key, data[key]);
405
+      }
406
+
407
+      // console.log(fd.get("storehouseJson"));
408
+
409
+      const resp = await getFileAojianAddOrEdit(data);
410
+      if (resp.status === "success") {
411
+        this.$message.success("保存成功");
412
+        this.show = false;
413
+        this.$emit("on-save");
414
+      } else {
415
+        this.$message.error(resp.msg);
416
+      }
417
+    },
384 418
     save() {
385 419
 
386 420
       console.log("data", this.form);
387 421
       this.$refs.editForm.validate(async (ok) => {
388 422
         if (ok) {
389
-          findWareCode({
390
-            storehouseId: this.form.storehouseId,
391
-            warehouseCode: this.form.warehouseCode,
392
-            orgId: this.orgId,
393
-          }).then(async (resp) => {
394
-            if(resp == 0) {
395
-              return this.$message.error('货位编号已存在')
396
-            }else if(resp == 1) {
397
-              const data = this.getLocalData();
398
-
399
-              const fd = new FormData();
400
-              for (const key in data) {
401
-                fd.append(key, data[key]);
402
-              }
403
-
404
-              // console.log(fd.get("storehouseJson"));
405
-
406
-              const resp = await getFileAojianAddOrEdit(data);
407
-              if (resp.status === "success") {
408
-                this.$message.success("保存成功");
409
-                this.show = false;
410
-                this.$emit("on-save");
411
-              } else {
412
-                this.$message.error(resp.msg);
423
+          if(this.isAdd) {
424
+            findWareCode({
425
+              storehouseId: this.form.storehouseId,
426
+              warehouseCode: this.form.warehouseCode,
427
+              orgId: this.orgId,
428
+            }).then(async (resp) => {
429
+              if(resp == 0) {
430
+                return this.$message.error('货位编号已存在')
431
+              }else if(resp == 1) {
432
+                this.doSave()
413 433
               }
414
-            }
415
-          })
434
+            })
435
+          }else if(this.isEdit) {
436
+            this.doSave()
437
+          }
416 438
         }
417 439
       });
418 440
     },

+ 20 - 2
src/page/basicData/equipmentEquipmentPoolList.vue

@@ -11,7 +11,18 @@
11 11
         >
12 12
           <el-form-item>
13 13
             <el-button type="primary" size="small" icon="el-icon-plus" @click="add">新增</el-button>
14
-            <el-button type="primary" size="small" icon="el-icon-download" @click="importData">导入</el-button>
14
+            <el-upload
15
+              style="display: inline-block"
16
+              :action="importUrl"
17
+              :before-upload="beforeImport"
18
+              :on-success="afterImport"
19
+              :show-file-list="false"
20
+              :data="{orgId: orgId, fileType: 'xlsx'}"
21
+              accept=".xlsx"
22
+              :limit="100"
23
+            >
24
+              <el-button size="small" type="primary" icon="el-icon-download">导入</el-button>
25
+            </el-upload>
15 26
             <el-button type="primary" size="small" icon="el-icon-upload2" @click="exportData">导出</el-button>
16 27
             <el-divider direction="vertical"></el-divider>
17 28
           </el-form-item>
@@ -121,7 +132,7 @@
121 132
 
122 133
 import {simpleList, hasHouseName, hasWareName, hasOrgName, houseAndWareQuery} from "@/components/simpleList";
123 134
 import edit from "./components/equipmentEquipmentPoolListEdit.vue";
124
-import {getStorePosition, storePositionRemove} from "@/api/deviceManagement";
135
+import {getStorePosition, importUrl, storePositionRemove} from "@/api/deviceManagement";
125 136
 
126 137
 export default {
127 138
   name: "equipmentEquipmentPoolList",
@@ -131,6 +142,7 @@ export default {
131 142
   },
132 143
   data() {
133 144
     return {
145
+      importUrl,
134 146
       form: {
135 147
         shelfId: null,
136 148
         warehouseId: null,
@@ -158,6 +170,12 @@ export default {
158 170
     getListFun() {
159 171
       return getStorePosition
160 172
     },
173
+    beforeImport(f) {
174
+      console.log('before upload', f)
175
+    },
176
+    afterImport() {
177
+      console.log('after upload', arguments)
178
+    },
161 179
     exportData() {
162 180
 
163 181
     },

+ 4 - 2
src/page/basicData/storehouseList.vue

@@ -273,8 +273,10 @@ export default {
273 273
       this.listLoading = true
274 274
     },
275 275
     afterImport(response, file, fileList) {
276
-      this.importMsg = response
277
-      this.uploadResultShow = true
276
+      if(response) {
277
+        this.importMsg = response
278
+        this.uploadResultShow = true
279
+      }
278 280
       this.listLoading = false
279 281
       this.getList()
280 282
     },

+ 4 - 2
src/page/basicData/warehouseList.vue

@@ -219,8 +219,10 @@ export default {
219 219
       this.listLoading = true
220 220
     },
221 221
     afterImport(response, file, fileList) {
222
-      this.importMsg = response
223
-      this.uploadResultShow = true
222
+      if(response) {
223
+        this.importMsg = response
224
+        this.uploadResultShow = true
225
+      }
224 226
       this.listLoading = false
225 227
       this.getList()
226 228
     },

+ 1 - 1
src/page/customerManagement/customerArchives.vue

@@ -79,7 +79,7 @@
79 79
           <span :style="{color: blackColor(scope.row)}">{{scope.row.isInBlacklist == 0 ? '否' : '是'}}</span>
80 80
         </template>
81 81
       </el-table-column>
82
-      <el-table-column label="操作" align="center" width="320">
82
+      <el-table-column label="操作" align="center" width="380">
83 83
         <template v-slot="scope">
84 84
           <el-button
85 85
             type="primary"

+ 2 - 2
src/page/decisionSupport/inventorySupervisionStatistics.vue

@@ -29,7 +29,7 @@
29 29
               </el-option>
30 30
             </el-select>
31 31
           </el-form-item>
32
-          <el-form-item label="粮油品种:" prop="status">
32
+          <el-form-item label="粮油品种:" prop="pz">
33 33
             <common-select v-model.number="form.pz" type="lsmxpz" :remote="true" class="small-field"></common-select>
34 34
           </el-form-item>
35 35
           <div class="search-button">
@@ -47,7 +47,7 @@
47 47
               @click="print"
48 48
               size="small"
49 49
               icon="el-icon-printer"
50
-            >导出
50
+            >打印
51 51
             </el-button>
52 52
           </div>
53 53
 

+ 8 - 7
src/page/deviceManagement/components/edit/index.vue

@@ -39,7 +39,7 @@
39 39
             </el-col>
40 40
             <el-col :span="8">
41 41
               <el-form-item label="设备编号" prop="sbbh">
42
-                <el-input v-model="form.sbbh"></el-input>
42
+                <el-input v-model="form.sbbh" placeholder="保存后自动生成" disabled></el-input>
43 43
               </el-form-item>
44 44
             </el-col>
45 45
           </el-row>
@@ -139,7 +139,7 @@
139 139
           <el-row type="flex" align="middle" justify="center" class="row">
140 140
             <el-col :span="8">
141 141
               <el-form-item label="编号" prop="sbbh">
142
-                <el-input v-model="form.sbbh"></el-input>
142
+                <el-input v-model="form.sbbh" placeholder="保存后自动生成" disabled></el-input>
143 143
               </el-form-item>
144 144
             </el-col>
145 145
             <el-col :span="8">
@@ -148,7 +148,7 @@
148 148
               </el-form-item>
149 149
             </el-col>
150 150
             <el-col :span="8">
151
-              <el-form-item label="存放位置" prop="sbbh">
151
+              <el-form-item label="存放位置" prop="fzd">
152 152
                 <el-select v-model="form.fzd" clearable placeholder="请选择" :disabled="readonly" @change="placeChange">
153 153
                   <el-option
154 154
                     v-for="item in storePlaceOptions"
@@ -200,7 +200,7 @@
200 200
           </el-col>
201 201
           <el-col :span="8">
202 202
             <el-form-item label="检定时间" prop="jdsj">
203
-              <el-date-picker v-model="form.jdsj" type="datetime" :readonly="readonly"/>
203
+              <el-date-picker v-model="form.jdsj" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" :readonly="readonly"/>
204 204
             </el-form-item>
205 205
           </el-col>
206 206
         </el-row>
@@ -420,9 +420,10 @@ export default {
420 420
       }
421 421
       d.szdwdm = this.orgId
422 422
 
423
-      return {
424
-        dSbxxsjyJson: JSON.stringify(d)
425
-      }
423
+      // return {
424
+      //   dSbxxsjyJson: d
425
+      // }
426
+      return d
426 427
     },
427 428
     save() {
428 429
       this.$refs.editForm.validate((ok) => {

+ 1 - 3
src/page/facilitiesManagement/components/facilitiesMaintenanceEdit.vue

@@ -177,9 +177,7 @@ export default {
177 177
         orgId: this.orgId,
178 178
         ... this.form
179 179
       }
180
-      return {
181
-        dFacilitiesMaintainJson: JSON.stringify(data)
182
-      }
180
+      return data
183 181
     },
184 182
     save() {
185 183
       this.$refs.editForm.validate((ok) => {

+ 3 - 0
src/page/facilitiesManagement/components/facilitiesRepairEdit.vue

@@ -192,6 +192,9 @@ export default {
192 192
       this.$refs.editForm.validate((ok) => {
193 193
         if(ok) {
194 194
           repairSave(this.getLocalData()).then(resp => {
195
+            if(resp.status === 'error') {
196
+              return this.$message.error('保存失败')
197
+            }
195 198
             this.$message.success('保存成功')
196 199
             this.show = false
197 200
             this.$emit('on-save')

+ 2 - 2
src/page/facilitiesManagement/facilitiesBaseInfo.vue

@@ -215,9 +215,9 @@ export default {
215 215
       }
216 216
       d.bfrq = this.$dateUtils.formatNow()
217 217
       for(const k of []) {
218
-        d[k] = d[k].replaceAll(' ', '_____PLACEHOLDER_PLUS_____')
218
+        d[k] = d[k].replace(/\s/g, '_____PLACEHOLDER_PLUS_____')
219 219
       }
220
-      facilitiesBasicsScrap({dFacilitiesBasicsJson: JSON.stringify(d)}).then(resp => {
220
+      facilitiesBasicsScrap(d).then(resp => {
221 221
         if(resp.status === 'success') {
222 222
           this.$message.success('已报废')
223 223
           this.getList()

+ 1 - 0
src/page/intelligentStorage/components/deviceControlEdit.vue

@@ -83,6 +83,7 @@
83 83
               <el-date-picker v-model="form.rkrq" type="datetime" value-format="yyyy-MM-dd HH:mm:ss" :readonly="readonly"></el-date-picker>
84 84
             </el-form-item>
85 85
           </el-col>
86
+          <el-col :span="8"></el-col>
86 87
         </el-row>
87 88
 
88 89
       </el-form>

+ 7 - 1
src/page/intelligentStorage/components/quantityDetectionDeviceConfigEdit.vue

@@ -128,6 +128,7 @@ export default {
128 128
         vvedioTdh: null,
129 129
         vvedioUser: null,
130 130
         vwsSrc: null,
131
+        updatePerson: null,
131 132
       },
132 133
       rules: {
133 134
         vcfCode: simple_required, vdevCode: simple_required, ivedioPort: positive_integer,
@@ -137,9 +138,14 @@ export default {
137 138
   },
138 139
   methods: {
139 140
     setUp() {
141
+      console.log('userName', this.realName)
140 142
       this.initHouseOptions();
141 143
     },
142
-
144
+    beforeAll() {
145
+      if(this.isAdd || this.isEdit) {
146
+        this.form.updatePerson = this.userId
147
+      }
148
+    },
143 149
     getDataFun() {
144 150
       return findById;
145 151
     },

+ 3 - 1
src/page/intelligentStorage/multifunctionalGrainInfo.vue

@@ -177,8 +177,10 @@ export default {
177 177
         if(resp.retCode == '200') {
178 178
           this.$message.success('操作成功')
179 179
         }else {
180
-          this.$message.error(resp.message)
180
+          this.$message.error('检测失败')
181 181
         }
182
+      }).catch(err => {
183
+        this.$message.error('检测失败')
182 184
       })
183 185
     },
184 186
     check() {

+ 1 - 1
src/page/intelligentStorage/quantityDetectionDeviceConfig.vue

@@ -91,7 +91,7 @@
91 91
       ></el-table-column>
92 92
       <el-table-column
93 93
         align="center"
94
-        prop="orgName"
94
+        prop="updatePerson"
95 95
         label="创建人"
96 96
       ></el-table-column>
97 97
       <el-table-column

+ 2 - 2
src/page/login/index.vue

@@ -143,7 +143,7 @@
143 143
             </el-form-item>
144 144
           </el-form>
145 145
 
146
-          <el-row>
146
+          <el-row v-show="false">
147 147
             <div style="float: left">
148 148
               没有账号请&nbsp;
149 149
               <span
@@ -164,7 +164,7 @@
164 164
               >
165 165
             </div>
166 166
           </el-row>
167
-          <el-row>
167
+          <el-row v-show="false">
168 168
             <div style="float: right">
169 169
               <span
170 170
                 style="

+ 60 - 0
src/page/mixin/legacyUpload.js

@@ -0,0 +1,60 @@
1
+import {uploadUrl_2} from "@/api/settlementManagement";
2
+import {downloadBase} from "@/api/inventoryQualityTraceability";
3
+import {basicUploadUrl, getFileList} from "@/api/base";
4
+export default {
5
+  data() {
6
+    return {
7
+      uploadUrl_2,
8
+      downloadBase,
9
+      fileList: [],
10
+      fileIds: [],
11
+      deleteFileIds: [],
12
+    }
13
+  },
14
+  methods: {
15
+    getFileListById(dataId) {
16
+      getFileList({bid: dataId, orgId: this.orgId}).then(resp => {
17
+
18
+        this.fileList = resp.map(d => {
19
+          return {
20
+            id: d.id,
21
+            name: d.originalFileName,
22
+            url: `${downloadBase}/${d.filePath}`
23
+          }
24
+        })
25
+        console.log('文件列表', resp, this.fileList)
26
+      })
27
+    },
28
+    onUploadSuccess(resp, file, fileList) {
29
+      console.log('上传文件 resp', resp, file, fileList)
30
+      this.fileList = fileList.map(f => {
31
+        let url
32
+        let id
33
+        if(f.response) {
34
+          url = f.response.filePath
35
+          id = f.response.id
36
+        }else {
37
+          url = f.url
38
+          id = f.id
39
+        }
40
+        return {
41
+          name: f.name,
42
+          url: url,
43
+          id: id,
44
+        }
45
+      })
46
+    },
47
+    onUploadRemove(fileList) {
48
+      const removeFiles = []
49
+      for(const f of this.fileList) {
50
+        const file = fileList.find(temp => temp.id === f.id)
51
+        if(! file) {
52
+          removeFiles.push(f)
53
+        }
54
+      }
55
+      this.fileList = fileList
56
+      this.deleteFileIds.push(... removeFiles.map(f => f.id))
57
+      console.log('删除文件 ', fileList, removeFiles)
58
+    }
59
+  }
60
+}

+ 5 - 6
src/page/receiptConfirmation/reportingInterest/index.vue

@@ -13,7 +13,7 @@
13 13
     </div>
14 14
     <el-form
15 15
       style="margin-bottom: 24px"
16
-      label-width="90px"
16
+      label-width="120px"
17 17
       :model="formState"
18 18
       :rules="rules"
19 19
       ref="ruleForm"
@@ -164,6 +164,7 @@
164 164
         <el-col :span="8"
165 165
           ><el-form-item prop="createDate" label="创建日期">
166 166
             <el-date-picker
167
+              style="width: 100%"
167 168
               v-model="formState.createDate"
168 169
               value-format="yyyy-MM-dd HH:mm:ss"
169 170
               type="date"
@@ -177,12 +178,10 @@
177 178
             label="对其他扣款"
178 179
             label-width="120px"
179 180
           >
180
-            <el-date-picker
181
-              v-model="formState.createDate"
182
-              value-format="yyyy-MM-dd HH:mm:ss"
183
-              type="date"
181
+            <el-input
182
+              autocomplete="off"
184 183
               :disabled="dataObj.showLock"
185
-              placeholder="日期"
184
+              v-model="formState.applicant"
186 185
             /> </el-form-item
187 186
         ></el-col>
188 187
       </el-row>

+ 5 - 1
src/page/storageQualificationData/components/informationChangesEdit.vue

@@ -105,7 +105,7 @@
105 105
             <el-form-item label="附件" prop="attachment">
106 106
               <upload
107 107
                 :post-action="uploadUrlV2"
108
-                :readonly="readonly"
108
+                :readonly="true"
109 109
                 :file-list="uploadFiles"
110 110
                 @on-upload-success="uploadSuccess"
111 111
                 @on-remove="uploadRemove"
@@ -190,6 +190,10 @@ export default {
190 190
           this.companySelected = resp
191 191
           if(this.isAdd) {
192 192
             this.form.sqrEnterpriseId = this.companySelected.id
193
+            if (resp.attachment) {
194
+              this.form.attachment = resp.attachment
195
+              this.uploadFiles = [resp.attachment]
196
+            }
193 197
           }
194 198
         })
195 199
       })

+ 5 - 1
src/page/storageQualificationData/components/storageQualificationEdit.vue

@@ -104,7 +104,7 @@
104 104
             <el-form-item label="附件" prop="attachment">
105 105
               <upload
106 106
                 :post-action="uploadUrlV2"
107
-                :readonly="readonly"
107
+                :readonly="true"
108 108
                 :file-list="uploadFiles"
109 109
                 @on-upload-success="uploadSuccess"
110 110
                 @on-remove="uploadRemove"
@@ -190,6 +190,10 @@ export default {
190 190
           this.companySelected = resp
191 191
           if(this.isAdd) {
192 192
             this.form.sqrEnterpriseId = this.companySelected.id
193
+            if (resp.attachment) {
194
+              this.form.attachment = resp.attachment
195
+              this.uploadFiles = [resp.attachment]
196
+            }
193 197
           }
194 198
         })
195 199
       })

+ 4 - 45
src/page/storehouseManagement/components/hazardControlEdit.vue

@@ -163,8 +163,10 @@ import {simple_required} from "@/utils/ruleDatas";
163 163
 import upload from '@/components/upload/v2.vue'
164 164
 import {basicUploadUrl, getFileList, minioUrl} from "@/api/base";
165 165
 import {downloadBase} from "@/api/inventoryQualityTraceability";
166
+import legacyUpload from "@/page/mixin/legacyUpload";
166 167
 
167 168
 export default {
169
+  mixins: [legacyUpload, ],
168 170
   props: {
169 171
     visible: {
170 172
       type: Boolean,
@@ -220,9 +222,6 @@ export default {
220 222
       uploadUrl_2,
221 223
       show: this.visible,
222 224
       form: { },
223
-      fileList: [],
224
-      fileIds: [],
225
-      deleteFileIds: [],
226 225
       rules: {
227 226
         sbr: simple_required, fxxx: simple_required, hjbw: simple_required,
228 227
         fxlx: simple_required, fxfj: simple_required, fxglcs: simple_required,
@@ -239,17 +238,8 @@ export default {
239 238
       this.resetForm()
240 239
       if(this.isAdd) {
241 240
       }else {
242
-        getFileList(this.dataId).then(resp => {
243
-
244
-          this.fileList = resp.map(d => {
245
-            return {
246
-              id: d.id,
247
-              name: d.originalFileName,
248
-              url: `${basicUploadUrl}${d.filePath}`
249
-            }
250
-          })
251
-          console.log('文件列表', resp, this.fileList)
252
-        })
241
+        console.log('查看 id', this.dataId)
242
+        this.getFileListById(this.dataId)
253 243
         StorageSafeManageControllerEdit(this.dataId).then(resp  => {
254 244
           this.form = resp.storageSafeManageWithBLOBs
255 245
           // const fl = resp.fileList || []
@@ -330,37 +320,6 @@ export default {
330 320
         }
331 321
       })
332 322
     },
333
-    onUploadSuccess(resp, file, fileList) {
334
-      console.log('上传文件 resp', resp, file, fileList)
335
-      this.fileList = fileList.map(f => {
336
-        let url
337
-        let id
338
-        if(f.response) {
339
-          url = f.response.filePath
340
-          id = f.response.id
341
-        }else {
342
-          url = f.url
343
-          id = f.id
344
-        }
345
-        return {
346
-          name: f.name,
347
-          url: url,
348
-          id: id,
349
-        }
350
-      })
351
-    },
352
-    onUploadRemove(fileList) {
353
-      const removeFiles = []
354
-      for(const f of this.fileList) {
355
-        const file = fileList.find(temp => temp.id === f.id)
356
-        if(! file) {
357
-          removeFiles.push(f)
358
-        }
359
-      }
360
-      this.fileList = fileList
361
-      this.deleteFileIds.push(... removeFiles.map(f => f.id))
362
-      console.log('删除文件 ', fileList, removeFiles)
363
-    }
364 323
   }
365 324
 
366 325
 }

+ 19 - 11
src/page/storehouseManagement/storehouseBaseInfo.vue

@@ -61,11 +61,11 @@
61 61
           {{ $enumUtils.getNameById(scope.row.storehouseType).name }}
62 62
         </template>
63 63
       </el-table-column>
64
-      <el-table-column
65
-        align="center"
66
-        prop="positionName"
67
-        label="代储甲方名称"
68
-      ></el-table-column>
64
+<!--      <el-table-column-->
65
+<!--        align="center"-->
66
+<!--        prop="agentDepotName"-->
67
+<!--        label="代储甲方名称"-->
68
+<!--      ></el-table-column>-->
69 69
       <el-table-column
70 70
         align="center"
71 71
         prop="designCapacity"
@@ -78,22 +78,30 @@
78 78
       ></el-table-column>
79 79
       <el-table-column
80 80
         align="center"
81
-        prop="totalCost"
81
+        prop="dutystoreman"
82 82
         label="保管员"
83 83
       ></el-table-column>
84 84
       <el-table-column
85 85
         align="center"
86
-        prop="totalCost"
86
+        prop="storehouseState"
87 87
         label="仓房状态"
88
-      ></el-table-column>
88
+      >
89
+        <template v-slot="scope">
90
+          {{$enumUtils.getNameById(scope.row.storehouseState).name}}
91
+        </template>
92
+      </el-table-column>
89 93
       <el-table-column
90 94
         align="center"
91
-        prop="totalCost"
95
+        prop="delFlag"
92 96
         label="使用情况"
93
-      ></el-table-column>
97
+      >
98
+        <template v-slot="scope">
99
+          {{scope.row.delFlag == '1' ? "在用":"弃用"}}
100
+        </template>
101
+      </el-table-column>
94 102
       <el-table-column
95 103
         align="center"
96
-        prop="completionDate"
104
+        prop="usedate"
97 105
         label="交付使用日期"
98 106
       ></el-table-column>
99 107
       <el-table-column label="操作" align="center" width="80">

+ 16 - 11
src/page/storehouseManagement/temperatureInspection.vue

@@ -10,7 +10,7 @@
10 10
           class="demo-form-inline search-form"
11 11
         >
12 12
           <el-form-item label="仓房名称:" prop="houseId">
13
-            <el-select v-model="form.houseId" clearable placeholder="请选择" @change="$forceUpdate()" >
13
+            <el-select v-model="form.houseId" clearable placeholder="请选择" @change="$forceUpdate()" :disabled="houseOptionsLock">
14 14
               <el-option
15 15
                 v-for="item in houseOptions"
16 16
                 :key="item.value"
@@ -35,6 +35,7 @@
35 35
             <span class="search-line"></span>
36 36
             <el-button type="primary" @click="search" size="small" class="iconfont iconchaxun">查询</el-button>
37 37
             <el-button
38
+              v-if="! houseOptionsLock"
38 39
               type="primary"
39 40
               @click="reset('searchForm')"
40 41
               size="small"
@@ -68,7 +69,7 @@
68 69
         label="仓房名称"
69 70
       >
70 71
         <template v-slot="scope">
71
-          {{ houseIdNameMap[scope.row.houseId] }}
72
+          {{ scope.row.houseName ? scope.row.houseName : houseIdNameMap[scope.row.houseId] }}
72 73
         </template>
73 74
       </el-table-column>
74 75
       <el-table-column
@@ -122,15 +123,15 @@
122 123
           label="平均"
123 124
         ></el-table-column>
124 125
       </el-table-column>
125
-      <el-table-column label="操作" align="center" width="130">
126
-        <template slot-scope="scope">
127
-          <el-button
128
-            type="primary"
129
-            size="small"
130
-            icon="el-icon-s-data"
131
-          >查看五温图</el-button>
132
-        </template>
133
-      </el-table-column>
126
+<!--      <el-table-column label="操作" align="center" width="130">-->
127
+<!--        <template slot-scope="scope">-->
128
+<!--          <el-button-->
129
+<!--            type="primary"-->
130
+<!--            size="small"-->
131
+<!--            icon="el-icon-s-data"-->
132
+<!--          >查看五温图</el-button>-->
133
+<!--        </template>-->
134
+<!--      </el-table-column>-->
134 135
     </el-table>
135 136
     <!-- 分页开始 -->
136 137
     <div class="pag-right clearFix">
@@ -180,6 +181,7 @@ export default {
180 181
       tableData: [],
181 182
       houseIdNameMap: {},
182 183
       houseOptions: [],
184
+      houseOptionsLock: false,
183 185
       form: {
184 186
         houseId: null,
185 187
         date: [],
@@ -203,7 +205,9 @@ export default {
203 205
   },
204 206
   mounted() {
205 207
     if(this.houseId != null) {
208
+      console.log('接收 house id', this.houseId)
206 209
       this.form.houseId = this.houseId
210
+      this.houseOptionsLock = true
207 211
     }
208 212
     this.getHouseOptions()
209 213
     this.getList()
@@ -242,6 +246,7 @@ export default {
242 246
             raw: d.raw
243 247
           }
244 248
         })
249
+        console.log('仓房列表', this.houseOptions)
245 250
       })
246 251
     },
247 252
     add() {

+ 1 - 1
src/router/index.js

@@ -166,7 +166,7 @@ export default new Router({
166 166
         transferManagementModule,
167 167
         // settlementManagementModule,
168 168
         // statisticsManagementModule,
169
-        // financialManagementModule,
169
+        financialManagementModule,
170 170
         progressManagementModule,
171 171
         consumerManagementModule,
172 172
         alertingModule,

+ 3 - 0
src/store/index.js

@@ -7,6 +7,9 @@ import getters from './getters'
7 7
 Vue.use(Vuex)
8 8
 
9 9
 const store = new Vuex.Store({
10
+  state: {
11
+    flag: 2,
12
+  },
10 13
   modules: {
11 14
     app,
12 15
     user

+ 1 - 1
src/utils/menuMock.js

@@ -100,7 +100,7 @@ const modules1 = [
100 100
   transferManagementModule,
101 101
   // settlementManagementModule,
102 102
   // statisticsManagementModule,
103
-  // financialManagementModule,
103
+  financialManagementModule,
104 104
   progressManagementModule,
105 105
   consumerManagementModule,
106 106
   alertingModule,

+ 3 - 3
src/utils/systemUtils.js

@@ -909,12 +909,12 @@ export const gotoCrkSystem = (vueObj) => {
909 909
     }
910 910
     return alert('请重新登录')
911 911
   }
912
-  const isDev = process.env.NODE_ENV === 'development'
912
+  const isProd = process.env.NODE_ENV === 'production'
913 913
   let url
914
-  if(isDev) {
914
+  if(!isProd) {
915 915
     url = 'http://101.36.160.210:31055/crk'
916 916
   }else {
917
-    url = 'http://172.18.93.228:80/crk'
917
+    url = 'http://172.18.93.228:80'
918 918
   }
919 919
   window.open(`${url}/#/welcome?username=${u}&password=${p}`)
920 920
 }

BIN
static/file/货位信息导入模板.xlsx


BIN
static/file/货位信息导入模板_v1.xlsx