From 3fbfdefe98e5d35e32d74138ce73a1b4e2fe5465 Mon Sep 17 00:00:00 2001
From: Mr.Zhang <710666463@qq.com>
Date: 星期四, 21 九月 2023 13:57:56 +0800
Subject: [PATCH] 平台端
---
platform/src/api/business/fileRecord.js | 8 +
platform/src/views/business/fileRecord.vue | 119 +++++++++++++++++
platform/src/components/business/OperaCompanyWindow.vue | 46 +++++-
platform/src/views/system/user.vue | 5
platform/src/views/business/company.vue | 18 +-
platform/src/assets/logo.png | 0
platform/package.json | 2
platform/src/components/system/user/OperaUserWindow.vue | 6
platform/src/utils/request.js | 4
platform/public/favicon.ico | 0
platform/public/template/goods_import_modle.xlsx | 0
platform/src/components/business/OperaCompanyUserWindow.vue | 10
platform/src/utils/form.js | 83 +++++++++++
platform/src/components/business/OperaGoodsWindow.vue | 8
platform/.env.production | 11
platform/.env.development | 6
platform/src/components/common/GlobalAlertWindow.vue | 1
platform/src/views/business/goods.vue | 43 +++--
platform/src/views/business/category.vue | 9
19 files changed, 315 insertions(+), 64 deletions(-)
diff --git a/platform/.env.development b/platform/.env.development
index 360f8b7..c53b589 100644
--- a/platform/.env.development
+++ b/platform/.env.development
@@ -7,9 +7,9 @@
# 浠诲悍
# VUE_APP_API = 'http://192.168.0.15:10017/'
# 鐒︽澗
-VUE_APP_API = 'http://192.168.0.36:10011'
+VUE_APP_API = 'http://192.168.0.36:10023'
# 姹熻悕
-VUE_APP_API = 'http://192.168.0.35:10011'
+# VUE_APP_API = 'http://192.168.0.35:10023'
-#娴嬭瘯鏈嶅姟鍣�
+# #娴嬭瘯鏈嶅姟鍣�
# VUE_APP_API = 'https://dmtest.ahapp.net/preselect_admin_interface'
diff --git a/platform/.env.production b/platform/.env.production
index eb6b15b..5c2b951 100644
--- a/platform/.env.production
+++ b/platform/.env.production
@@ -1,12 +1,11 @@
# 鐢熶骇鐜閰嶇疆
NODE_ENV = 'production'
-# VUE_APP_API = 'https://dmtest.ahapp.net/preselect_interface/'
-VUE_APP_API = 'http://127.0.0.1/'
+VUE_APP_CONTEXT_PATH = '/admin'
+VUE_APP_API_PREFIX = '/admin_interface'
-# VUE_APP_API = 'https://dm.ahapp.net/preselect_interface/'
-# VUE_APP_API = 'http://yx.doumee.com/preselect_interface/'
-
-# VUE_APP_API = 'http://mjyx.doumee.com/preselect_interface/'
\ No newline at end of file
+# http://yx.ahapp.net/admin_interface/doc.html
+# VUE_APP_API = 'https://yx.ahapp.net/admin_interface'
+VUE_APP_API = 'http://127.0.0.1:10023/
\ No newline at end of file
diff --git a/platform/package.json b/platform/package.json
index bc7b751..14effa1 100644
--- a/platform/package.json
+++ b/platform/package.json
@@ -4,7 +4,7 @@
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
- "build": "vue-cli-service build",
+ "build:pro": "vue-cli-service build",
"build:dev": "vue-cli-service build --mode staging",
"lint": "vue-cli-service lint",
"fix": "eslint --ext .js,.vue src --fix"
diff --git a/platform/public/favicon.ico b/platform/public/favicon.ico
index c6ff5db..64ccd74 100644
--- a/platform/public/favicon.ico
+++ b/platform/public/favicon.ico
Binary files differ
diff --git a/platform/public/template/goods_import_modle.xlsx b/platform/public/template/goods_import_modle.xlsx
index 84a9c9a..87678a5 100644
--- a/platform/public/template/goods_import_modle.xlsx
+++ b/platform/public/template/goods_import_modle.xlsx
Binary files differ
diff --git a/platform/src/api/business/fileRecord.js b/platform/src/api/business/fileRecord.js
new file mode 100644
index 0000000..5e34b26
--- /dev/null
+++ b/platform/src/api/business/fileRecord.js
@@ -0,0 +1,8 @@
+import request from '../../utils/request'
+
+// 鏌ヨ
+export function fetchList (data) {
+ return request.post('/business/fileRecord/page', data, {
+ trim: true
+ })
+}
diff --git a/platform/src/assets/logo.png b/platform/src/assets/logo.png
index 3c0b233..5d8fd16 100644
--- a/platform/src/assets/logo.png
+++ b/platform/src/assets/logo.png
Binary files differ
diff --git a/platform/src/components/business/OperaCompanyUserWindow.vue b/platform/src/components/business/OperaCompanyUserWindow.vue
index 6613a25..45942e7 100644
--- a/platform/src/components/business/OperaCompanyUserWindow.vue
+++ b/platform/src/components/business/OperaCompanyUserWindow.vue
@@ -11,11 +11,11 @@
<el-input v-model="form.name" placeholder="璇疯緭鍏ュ鎴蜂紒涓氬叏绉帮紝涓嶈秴杩�30瀛�" v-trim/>
浼佷笟鍚嶇О闇�涓庡伐鍟嗛儴闂ㄧ櫥璁颁俊鎭竴鑷�
</el-form-item>
- <el-form-item label="浼佷笟绠�绉�" prop="shortName">
+ <el-form-item label="瀹㈡埛绠�绉�" prop="shortName">
<el-input v-model="form.shortName" placeholder="璇疯緭鍏ヤ紒涓氱畝绉�" v-trim/>
</el-form-item>
- <el-form-item label="缁熶竴绀句細淇$敤浠g爜" prop="creditCode">
- <el-input v-model="form.creditCode" placeholder="璇疯緭鍏ョ粺涓�绀句細淇$敤浠g爜" v-trim/>
+ <el-form-item label="缁熶竴淇$敤浠g爜" prop="creditCode">
+ <el-input v-model="form.creditCode" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" v-trim/>
缁熶竴淇$敤浠g爜闇�涓庡伐鍟嗛儴闂ㄧ櫥璁颁俊鎭竴鑷�
</el-form-item>
<el-form-item label="鐧诲綍璐﹀彿" prop="managerUserName">
@@ -26,6 +26,7 @@
</el-form-item>
<el-form-item label="涓绘挱鏁伴噺闄愬埗" prop="userNum">
<el-input v-model="form.userNum" :disabled="!!this.form.id" placeholder="璇疯緭鍏ヤ富鎾暟閲忛檺鍒�" v-trim/>
+
</el-form-item>
<el-form-item label="閿�鍞汉鍛�" prop="salesmanId">
<!-- <el-input v-model="form.salesmanId" placeholder="璇疯緭鍏ラ攢鍞汉鍛樼紪鐮�" v-trim/> -->
@@ -71,7 +72,7 @@
linkname: '',
linkephone: '',
creditCode: '',
- userNum: '',
+ userNum: 5,
oepnValidDate: '',
salesmanId: ''
},
@@ -106,6 +107,7 @@
<style lang="scss" scoped>
.more {
margin-top: 40px;
+ margin-bottom: 10px;
.more-title {
font-weight: 600;
font-size: 18px;
diff --git a/platform/src/components/business/OperaCompanyWindow.vue b/platform/src/components/business/OperaCompanyWindow.vue
index 4c91ee7..0739250 100644
--- a/platform/src/components/business/OperaCompanyWindow.vue
+++ b/platform/src/components/business/OperaCompanyWindow.vue
@@ -11,11 +11,11 @@
<el-input v-model="form.name" placeholder="璇疯緭鍏ュ鎴蜂紒涓氬叏绉帮紝涓嶈秴杩�30瀛�" v-trim/>
浼佷笟鍚嶇О闇�涓庡伐鍟嗛儴闂ㄧ櫥璁颁俊鎭竴鑷�
</el-form-item>
- <el-form-item label="浼佷笟绠�绉�" prop="shortName">
- <el-input v-model="form.shortName" placeholder="璇疯緭鍏ヤ紒涓氱畝绉�" v-trim/>
+ <el-form-item label="瀹㈡埛绠�绉�" prop="shortName">
+ <el-input v-model="form.shortName" placeholder="璇疯緭鍏ュ鎴风畝绉�" v-trim/>
</el-form-item>
- <el-form-item label="缁熶竴绀句細淇$敤浠g爜" prop="creditCode">
- <el-input v-model="form.creditCode" placeholder="璇疯緭鍏ョ粺涓�绀句細淇$敤浠g爜" v-trim/>
+ <el-form-item label="缁熶竴淇$敤浠g爜" prop="creditCode">
+ <el-input v-model="form.creditCode" placeholder="璇疯緭鍏ョ粺涓�淇$敤浠g爜" v-trim/>
缁熶竴淇$敤浠g爜闇�涓庡伐鍟嗛儴闂ㄧ櫥璁颁俊鎭竴鑷�
</el-form-item>
<el-form-item label="鐧诲綍璐﹀彿" prop="managerUserName">
@@ -26,6 +26,7 @@
</el-form-item>
<el-form-item label="涓绘挱鏁伴噺闄愬埗" prop="userNum">
<el-input v-model="form.userNum" :disabled="!!this.form.id" placeholder="璇疯緭鍏ヤ富鎾暟閲忛檺鍒�" v-trim/>
+ 杈撳叆0琛ㄧず涓嶉檺鍒�
</el-form-item>
<el-form-item label="閿�鍞汉鍛�" prop="salesmanId">
<!-- <el-input v-model="form.salesmanId" placeholder="璇疯緭鍏ラ攢鍞汉鍛樼紪鐮�" v-trim/> -->
@@ -54,6 +55,7 @@
import BaseOpera from '@/components/base/BaseOpera'
import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
import { findAllList } from '@/api/system/user'
+import { loginNameRule, creditCode } from '@/utils/form'
export default {
name: 'OperaCompanyWindow',
extends: BaseOpera,
@@ -71,7 +73,7 @@
linkname: '',
linkephone: '',
creditCode: '',
- userNum: '',
+ userNum: '5',
oepnValidDate: '',
salesmanId: ''
},
@@ -82,7 +84,10 @@
{ required: true, message: '璇疯緭鍏ュ鎴蜂紒涓氬叏绉�', tigger: 'blur'}
],
managerUserName: [
- { required: true, message: '璇疯緭鍏ョ櫥褰曡处鍙�', tigger: 'blur'}
+ { required: true, validator: loginNameRule, message: '璇疯緭鍏ョ櫥褰曡处鍙�', tigger: 'blur'}
+ ],
+ creditCode: [
+ { validator: creditCode, trigger: 'blur' }
],
openUserNum: [
{ pattern: /^[0-9]+$/, message: '鍙彲浠ヨ緭鍏ユ暟瀛�', trigger: 'change' }
@@ -99,16 +104,43 @@
.then(res => {
this.sales = res
})
- }
+ },
+ methods: {
+ open(title, target) {
+ this.title = title
+ this.visible = true
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ let data = new Date(new Date().getTime() + 31536000000)
+ this.form.oepnValidDate = `${data.getFullYear()}-${data.getMonth() +1}-${data.getDate()}`
+ this.form[this.configData['field.id']] = null
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ this.form.multifileList.forEach(item => {
+ item.url = item.filefullurl
+ })
+ })
+ },
+ },
}
</script>
<style lang="scss" scoped>
.more {
margin-top: 40px;
+
.more-title {
font-weight: 600;
font-size: 18px;
+ margin-bottom: 10px;
}
}
::v-deep .el-input {
diff --git a/platform/src/components/business/OperaGoodsWindow.vue b/platform/src/components/business/OperaGoodsWindow.vue
index 4bbcc37..b4d0072 100644
--- a/platform/src/components/business/OperaGoodsWindow.vue
+++ b/platform/src/components/business/OperaGoodsWindow.vue
@@ -2,18 +2,18 @@
<GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm" width="800px"
v-loading="isUploading">
<el-form :model="form" ref="form" label-width="120px" :rules="rules">
- <div style="font-size: 18px;font-weight: bold;">鍩烘湰淇℃伅</div>
+ <div style="font-size: 18px;font-weight: bold; margin-bottom: 10px;">鍩烘湰淇℃伅</div>
<el-form-item label="鍟嗗搧鍚嶇О" prop="name">
<el-input v-model="form.name" maxlength="50" placeholder="璇疯緭鍏ュ晢鍝佸悕绉帮紝涓嶈秴杩�50涓瓧" v-trim />
</el-form-item>
<el-form-item label="鍟嗗搧鍝佺墝" prop="brandId">
- <el-select v-model="form.brandId" placeholder="璇烽�夋嫨锛屽崟閫�">
+ <el-select v-model="form.brandId" filterable placeholder="璇烽�夋嫨锛屽崟閫�">
<el-option v-for="item in brandList()" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="鍟嗗搧绫诲埆" prop="categoryId">
- <el-select v-model="form.categoryId" placeholder="璇烽�夋嫨锛屽崟閫�" @change="categorySelect">
+ <el-select v-model="form.categoryId" filterable placeholder="璇烽�夋嫨锛屽崟閫�" @change="categorySelect">
<el-option v-for="item in categoryList()" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
@@ -37,7 +37,7 @@
鍙兘涓婁紶鍥剧墖鏍煎紡锛宲ng鏍煎紡锛屽缓璁昂瀵�600*600px
</el-form-item>
<template v-if="form.baseGoodsParamList && form.baseGoodsParamList.length > 0">
- <div style="font-size: 18px;font-weight: bold;">鍙傛暟灞炴�у�奸厤缃� <span
+ <div style="font-size: 18px;font-weight: bold; margin-bottom: 10px;">鍙傛暟灞炴�у�奸厤缃� <span
style="font-size: 13px; font-weight: 500;">鎸夐渶閰嶇疆褰撳墠鍟嗗搧鐨勪骇鍝佸弬鏁板�硷紝鍗曚釜鍙傛暟鍊间笉瓒呰繃30涓瓧</span></div>
<el-form-item :label="item.name" v-for="(item, index) in form.baseGoodsParamList" :key="index">
<el-input v-model="item.val" maxlength="30" type="text" placeholder="璇疯緭鍏�" v-trim />
diff --git a/platform/src/components/common/GlobalAlertWindow.vue b/platform/src/components/common/GlobalAlertWindow.vue
index f1d4255..74d06aa 100644
--- a/platform/src/components/common/GlobalAlertWindow.vue
+++ b/platform/src/components/common/GlobalAlertWindow.vue
@@ -1,6 +1,7 @@
<template>
<el-dialog
+ top="10vh"
class="global-window"
title="title"
:visible="visible"
diff --git a/platform/src/components/system/user/OperaUserWindow.vue b/platform/src/components/system/user/OperaUserWindow.vue
index 240a739..c3ac6e7 100644
--- a/platform/src/components/system/user/OperaUserWindow.vue
+++ b/platform/src/components/system/user/OperaUserWindow.vue
@@ -19,12 +19,12 @@
<el-radio label="0">濂�</el-radio>
</el-radio-group>
</el-form-item>
- <el-form-item label="澶村儚" prop="avatar" required>
+ <!-- <el-form-item label="澶村儚" prop="avatar" required>
<el-radio-group v-model="form.avatar" class="form-item-avatar">
<el-radio label="https://dmtest.ahapp.net/preselectfile/man.png" border><img src="https://dmtest.ahapp.net/preselectfile/man.png" alt=""></el-radio>
<el-radio label="https://dmtest.ahapp.net/preselectfile/woman.png" border><img src="https://dmtest.ahapp.net/preselectfile/woman.png" alt=""></el-radio>
</el-radio-group>
- </el-form-item>
+ </el-form-item> -->
<el-form-item v-if="form.id == null" label="鍒濆瀵嗙爜" prop="password" required>
<el-input v-model="form.password" type="password" placeholder="璇疯緭鍏ュ垵濮嬪瘑鐮�" maxlength="30" show-password/>
</el-form-item>
@@ -71,7 +71,7 @@
empNo: '', // 宸ュ彿
departmentId: null, // 鎵�灞為儴闂↖D
positionIds: [], // 鎵�灞炲矖浣岻D闆�
- avatar: '/avatar/man.png', // 澶村儚
+ // avatar: '/avatar/man.png', // 澶村儚
password: '', // 瀵嗙爜
mobile: '', // 鎵嬫満鍙风爜
email: '', // 閭
diff --git a/platform/src/utils/form.js b/platform/src/utils/form.js
index cf60c6f..e625827 100644
--- a/platform/src/utils/form.js
+++ b/platform/src/utils/form.js
@@ -1,15 +1,88 @@
-// 楠岃瘉鎵嬫満鍙风爜
-export function checkMobile (rule, value, callback) {
+
+export function checkMobile(rule, value, callback) {
if (value == null || value.trim() === '') {
- callback(new Error('鎵嬫満鍙风爜涓嶈兘涓虹┖'))
+ if (rule.required) {
+ callback(new Error('璇疯緭鍏ユ墜鏈哄彿'))
+ } else {
+ callback()
+ }
return
}
- if (!/^1\d{10}$/.test(value)) {
- callback(new Error('鎵嬫満鍙风爜鏍煎紡涓嶆纭�'))
+ let re = /^[0-9]{11}$/;
+ var result = re.test(value);
+ if(!result) {
+ callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙�'))
+ } else {
+ callback()
+ }
+}
+
+export function checkPhone(rule, value, callback) {
+ //鎵嬫満鍙凤細13锛�14锛�15锛�17锛�18锛�19鍙锋
+ const phoneReg = /^1[3|4|5|7|8][0-9]{9}$/
+ //鍥鸿瘽锛氬尯鍙�(3-4浣�)-鍙风爜(7-9浣�)
+ const mobReg = /(^[0-9]{3,4}-[0-9]{7,9}$)/
+ //婢抽棬鐢佃瘽鍙风爜: 28寮�澶达紝鍚庨潰璺�6浣嶆暟瀛楋紝鍖哄彿涓�853
+ const macaoMobReg = /^(853)?28\d{6}$/
+ //婢抽棬鎵嬫満鍙风爜锛�6寮�澶达紝鍚庨潰璺�7浣嶆暟瀛楋紝鍖哄彿涓�853
+ const macaoPhoneReg = /^(853)?6\d{7}$/
+ //鍚屾椂鏀寔鎵嬫満鍙风爜鍜岀數璇濆彿鐮�
+ const macaoReg = /^(853)?(?:28\d{6}|6\d{7})$/
+ if (!value) {
+ callback(new Error('鐢佃瘽鍙风爜涓嶈兘涓虹┖'))
+ } else if (phoneReg.test(value)||mobReg.test(value)||macaoReg.test(value)) {
+ callback()
+ } else {
+ callback(new Error('璇疯緭鍏ユ纭數璇濆彿鐮�'))
+ }
+}
+
+export function loginNameRule (rule, value, callback) {
+ if (value == null || value.trim() === '') {
+ if (rule.required) {
+ callback(new Error('璇疯緭鍏ヨ处鍙�'))
+ } else {
+ callback()
+ }
+ return
+ }
+ let re =/^[\u4e00-\u9fa5a-zA-Z0-9]+$/
+ var result = re.test(value)
+ if(!result) {
+ callback(new Error('璇疯緭鍏ユ纭殑璐﹀彿'))
+ } else {
+ callback()
+ }
+}
+
+export function nameRule (rule, value, callback) {
+ if (value == null || value.trim() === '') {
+ if (rule.required) {
+ callback(new Error('璇疯緭鍏ュ悕瀛�'))
+ } else {
+ callback()
+ }
return
}
callback()
}
+export function creditCode (rule, value, callback) {
+ if (value == null || value.trim() === '') {
+ if (rule.required) {
+ callback(new Error('璇疯緭鍏ョぞ浼氫俊鐢ㄤ唬鐮�'))
+ } else {
+ callback()
+ }
+ return
+ }
+ let re = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/
+ var result = re.test(value)
+ if(!result) {
+ callback(new Error('璇疯緭鍏ユ纭殑绀句細淇$敤浠g爜'))
+ } else {
+ callback()
+ }
+}
// 楠岃瘉閭
export function checkEmail (rule, value, callback) {
diff --git a/platform/src/utils/request.js b/platform/src/utils/request.js
index bb715e1..703ba15 100644
--- a/platform/src/utils/request.js
+++ b/platform/src/utils/request.js
@@ -29,9 +29,9 @@
// 璁剧疆鎿嶄綔骞冲彴
config.headers['eva-platform'] = `pc-${pkg.version}`
// 璁剧疆璁よ瘉澶�
- const authToken = Cookies.get('eva-auth-token')
+ const authToken = Cookies.get('doumee-auth-token')
if (authToken != null) {
- config.headers['eva-auth-token'] = authToken
+ config.headers['doumee-auth-token'] = authToken
}
return config
}, function (error) {
diff --git a/platform/src/views/business/category.vue b/platform/src/views/business/category.vue
index 659971b..f937c4c 100644
--- a/platform/src/views/business/category.vue
+++ b/platform/src/views/business/category.vue
@@ -29,7 +29,7 @@
<el-table-column prop="priceRate" label="鍔犱环绯绘暟" min-width="100px"></el-table-column>
<el-table-column prop="sortnum" label="鎺掑簭鐮�(鍗囧簭)" min-width="100px"></el-table-column>
<el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵��" min-width="100px">
+ <el-table-column v-if="containPermissions(['business:category:update'])" prop="status" label="鐘舵��" min-width="100px">
<template slot-scope="{row}">
<el-switch v-model="row.status" @change="changeStatus(row)" :active-value="0" :inactive-value="1">
</el-switch>
@@ -88,8 +88,11 @@
status: item.status
}).then(res => {
this.$tip.apiSuccess('鏇存柊鎴愬姛')
- }).finally(() => {
- // this.search()
+ }).catch (err => {
+ this.$message.error(err)
+ })
+ .finally(() => {
+ this.handlePageChange()
})
},
edit(id) {
diff --git a/platform/src/views/business/company.vue b/platform/src/views/business/company.vue
index 8ae8e33..ce296b3 100644
--- a/platform/src/views/business/company.vue
+++ b/platform/src/views/business/company.vue
@@ -2,14 +2,14 @@
<TableLayout :permissions="['business:company:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="鍚嶇О" prop="name">
- <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ悕绉�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="浼佷笟鍚嶇О" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ヤ紒涓氬悕绉�" @keypress.enter.native="search"></el-input>
</el-form-item>
<!-- <el-form-item label="浼佷笟绠�绉�" prop="shortName">
<el-input v-model="searchForm.shortName" placeholder="璇疯緭鍏ヤ紒涓氱畝绉�" @keypress.enter.native="search"></el-input>
</el-form-item> -->
- <el-form-item label="绠$悊鍛樿处鍙�" prop="managerUserName">
- <el-input v-model="searchForm.managerUserName" placeholder="璇疯緭鍏ョ鐞嗗憳璐﹀彿" @keypress.enter.native="search"></el-input>
+ <el-form-item label="鐧诲綍璐﹀彿" prop="managerUserName">
+ <el-input v-model="searchForm.managerUserName" placeholder="璇疯緭鍏ョ櫥褰曡处鍙�" @keypress.enter.native="search"></el-input>
</el-form-item>
<el-form-item label="鏈夋晥鏈�" prop="oepnValidDate">
<el-date-picker type="daterange" v-model="oepnValidDate" value-format="yyyy-MM-dd" start-placeholder="寮�濮嬫棩鏈�"
@@ -37,11 +37,15 @@
<!-- <el-table-column type="selection" width="55" align="center"></el-table-column> -->
<el-table-column prop="id" label="浼佷笟缂栧彿" min-width="80px" align="center"></el-table-column>
<el-table-column prop="name" label="浼佷笟鍚嶇О" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="managerUserName" label="绠$悊鍛樿处鍙�" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="managerUserName" label="鐧诲綍璐﹀彿" min-width="100px" align="center"></el-table-column>
<el-table-column prop="linkname" label="鑱旂郴浜�" min-width="100px" align="center"></el-table-column>
<el-table-column prop="linkephone" label="鑱旂郴浜虹數璇�" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="oepnValidDate" label="鐢ㄦ湁鏁堟湡" min-width="140px" align="center"></el-table-column>
- <el-table-column prop="userNum" label="涓绘挱鏁伴噺闄愬埗" min-width="100px" align="center"></el-table-column>
+ <el-table-column prop="oepnValidDate" label="鏈夋晥鏈�" min-width="140px" align="center"></el-table-column>
+ <el-table-column prop="userNum" label="涓绘挱璐﹀彿闄愬埗" min-width="100px" align="center">
+ <template slot-scope="{row}">
+ {{ row.userNum || '涓嶉檺' }}
+ </template>
+ </el-table-column>
<el-table-column prop="empUserNum" label="鍛樺伐鏁�" min-width="100px" align="center"></el-table-column>
<el-table-column prop="salesmanRealName" label="閿�鍞汉鍛�" min-width="100px" align="center"></el-table-column>
<el-table-column prop="status" label="鐘舵��" min-width="100px" align="center">
diff --git a/platform/src/views/business/fileRecord.vue b/platform/src/views/business/fileRecord.vue
new file mode 100644
index 0000000..f2160c6
--- /dev/null
+++ b/platform/src/views/business/fileRecord.vue
@@ -0,0 +1,119 @@
+<template>
+ <TableLayout :permissions="['business:filerecord:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+
+ <!-- <el-form-item label="鏂囦欢鍚�" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ユ枃浠跺悕" @keypress.enter.native="search"></el-input>
+ </el-form-item> -->
+
+ <el-form-item label="鏂囦欢澶瑰悕绉�" prop="folder">
+ <el-input v-model="searchForm.folder" placeholder="璇疯緭鍏ユ枃浠跺す鍚嶇О" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+
+ <el-form-item label="OSS鏂囦欢key" prop="keyval">
+ <el-input v-model="searchForm.keyval" placeholder="璇疯緭鍏SS鏂囦欢key" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵��" prop="status">
+ <el-select v-model="searchForm.status" clearable placeholder="璇烽�夋嫨鐘舵��">
+ <el-option v-for="item in statusList" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ border
+ stripe
+ >
+ <el-table-column type="index" :index="newIndex" label="搴忓彿" width="80px" align="center"></el-table-column>
+ <el-table-column prop="name" label="鏂囦欢" width="100px" align="center">
+ <template slot-scope="{row}">
+ <el-image v-if="row.url" style="width: 70px; height: 70px" :src="row.url"
+ :preview-src-list="[row.url]" fit="cover"></el-image>
+ </template>
+ </el-table-column>
+ <el-table-column prop="folder" label="鏂囦欢澶瑰悕绉�" width="140px" align="center"></el-table-column>
+ <el-table-column prop="keyval" label="OSS鏂囦欢key" min-width="120px" align="center"></el-table-column>
+ <el-table-column prop="status" label="鐘舵��" width="100px" align="center">
+ <template slot-scope="{row}">
+ <!-- 0鏈笂浼� 1宸蹭笂浼� 2涓婁紶澶辫触 -->
+ {{ row.status == 0 ? '鏈笂浼�' : row.status == 1 ? '宸蹭笂浼�' : '涓婁紶澶辫触' }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" width="150px" align="center"></el-table-column>
+ <el-table-column prop="editDate" label="鏇存柊鏃堕棿" width="150px" align="center"></el-table-column>
+<!--
+ <el-table-column prop="editor" label="鏇存柊浜虹紪鐮�" min-width="100px"></el-table-column>
+ <el-table-column prop="isdeleted" label="鏄惁鍒犻櫎0鍚� 1鏄�" min-width="100px"></el-table-column>
+ <el-table-column prop="info" label="澶囨敞" min-width="100px"></el-table-column>
+ <el-table-column prop="objId" label="鍏宠仈瀵硅薄缂栫爜" min-width="100px"></el-table-column>
+ <el-table-column prop="type" label="绫诲瀷0鍥剧墖 1瑙嗛 2鍏朵粬" min-width="100px"></el-table-column> -->
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+export default {
+ name: 'FileRecord',
+ extends: BaseTable,
+ components: { TableLayout, Pagination },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ id: '',
+ creator: '',
+ createDate: '',
+ editor: '',
+ editDate: '',
+ isdeleted: '',
+ name: '',
+ info: '',
+ objId: '',
+ type: '',
+ folder: '',
+ status: '',
+ keyval: ''
+ },
+ statusList: [
+ // 0鏈笂浼� 1宸蹭笂浼� 2涓婁紶澶辫触
+ { name: '鏈笂浼�', id: 0 },
+ { name: '宸蹭笂浼�', id: 1 },
+ { name: '涓婁紶澶辫触', id: 2 }
+ ]
+ }
+ },
+ created () {
+ this.config({
+ module: '闄勪欢涓婁紶杩涘害琛�',
+ api: '/business/fileRecord',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ newIndex(index) {
+ return (this.tableData.pagination.pageIndex - 1) * 10 + index + 1
+ }
+ },
+}
+</script>
diff --git a/platform/src/views/business/goods.vue b/platform/src/views/business/goods.vue
index b7f8046..98ebff2 100644
--- a/platform/src/views/business/goods.vue
+++ b/platform/src/views/business/goods.vue
@@ -43,14 +43,18 @@
</li>
<!-- <el-button type="primary" :loading="isWorking.export"
@click="$refs.selectProduct.open('閫夋嫨骞冲彴鍟嗗搧')">閫夋嫨骞冲彴鍟嗗搧</el-button> -->
- <li v-permissions="['business:basegoods:exportExcel']">
+ <li v-permissions="['business:basegoods:exportExcel', 'business:goods:delete']">
<ImportButton text="瀵煎叆" template-name="goods_import_modle.xlsx"
template-path="/template/goods_import_modle.xlsx" action="/business/baseGoods/importExcel"
@success="search" />
</li>
- <el-button type="primary" :loading="isWorking.export" @click="bulkOperation(0)">鎵归噺涓婃灦</el-button>
- <el-button type="primary" :loading="isWorking.export" @click="bulkOperation(1)">鎵归噺涓嬫灦</el-button>
- <!-- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:goods:delete']">鍒犻櫎</el-button></li> -->
+ <li>
+ <el-button type="primary" :loading="isWorking.export" @click="bulkOperation(0)">鎵归噺涓婃灦</el-button>
+ </li>
+ <li>
+ <el-button type="primary" :loading="isWorking.export" @click="bulkOperation(1)">鎵归噺涓嬫灦</el-button>
+ </li>
+ <li v-permissions="['business:goods:delete']"><el-button @click="deleteByIdInBatch" style="color: red;">鎵归噺鍒犻櫎</el-button></li>
</ul>
<el-table v-loading="isWorking.search" :data="tableData.list" stripe border :header-cell-style="rowStyle"
:cell-style="rowStyle" @selection-change="handleSelectionChange">
@@ -72,7 +76,7 @@
<el-table-column prop="zdPrice" label="鎸囧浠凤紙鍏冿級" min-width="100px"></el-table-column>
<el-table-column prop="price" label="閲囪喘浠�(鍏�)" min-width="100px"></el-table-column>
<el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="status" label="鐘舵��" min-width="100px">
+ <el-table-column prop="status" v-if="containPermissions(['business:basegoods:update'])" label="鐘舵��" min-width="100px">
<template slot-scope="{row}">
<el-switch v-model="row.status" @change="changeStatus(row)" active-color="#13ce66" inactive-color="#ff4949"
:active-value="0" :inactive-value="1">
@@ -106,7 +110,7 @@
import OperaGoodsWindow from '@/components/business/OperaGoodsWindow'
import selectProduct from '@/components/business/selectProduct'
import ImportButton from '@/components/common/ImportButton'
-import { brand, baseCategory, importExcel } from '@/api/system/common.js'
+import { brand, baseCategory } from '@/api/system/common.js'
import { updateStatus, queryById, exportDoc } from '@/api/business/goods.js'
export default {
name: 'Goods',
@@ -150,24 +154,25 @@
this.getcategory()
},
methods: {
- handleSelectionChange(e) {
- let arr = e.map(item => item.id)
- this.ids = arr.join(',')
- this.idList = arr;
- },
+ // handleSelectionChange(e) {
+ // let arr = e.map(item => item.id)
+ // this.ids = arr.join(',')
+ // this.idList = arr;
+ // },
// 鎵归噺涓婁笅鏋�
bulkOperation(type) {
- if (!this.ids) {
- this.$message.warning({ message: '鑷冲皯閫夋嫨涓�椤瑰唴瀹�' })
+ if (this.tableData.selectedRows.length === 0) {
+ this.$tip.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
return
}
+ let idList = this.tableData.selectedRows.map(item => item.id)
updateStatus({
- idList: this.idList,
+ idList,
status: type
}).then(res => {
this.$tip.apiSuccess('鎿嶄綔鎴愬姛');
// this.$message.success({ message:res.message })
- this.search()
+ this.handlePageChange()
})
},
downloadFile() {
@@ -194,8 +199,12 @@
status: item.status
}).then(res => {
this.$tip.apiSuccess('鏇存柊鎴愬姛')
- }).finally(() => {
- // this.search()
+ })
+ .catch (err => {
+ this.$message.error(err)
+ } )
+ .finally(() => {
+ this.handlePageChange()
})
},
getbrand() {
diff --git a/platform/src/views/system/user.vue b/platform/src/views/system/user.vue
index 7a2711d..532e469 100644
--- a/platform/src/views/system/user.vue
+++ b/platform/src/views/system/user.vue
@@ -33,15 +33,16 @@
:data="tableData.list"
:default-sort = "{prop: 'createTime', order: 'descending'}"
stripe
+ border
@selection-change="handleSelectionChange"
@sort-change="handleSortChange"
>
<el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="avatar" label="澶村儚" width="80px" class-name="table-column-avatar" fixed="left">
+ <!-- <el-table-column prop="avatar" label="澶村儚" width="80px" class-name="table-column-avatar" fixed="left">
<template slot-scope="{row}">
<img :src="row.avatar == null ? '/static/avatar/man.png' : row.avatar">
</template>
- </el-table-column>
+ </el-table-column> -->
<el-table-column prop="realname" label="濮撳悕" min-width="100px" fixed="left"></el-table-column>
<el-table-column prop="username" label="鐢ㄦ埛鍚�" min-width="120px"></el-table-column>
<el-table-column prop="empNo" label="宸ュ彿" sortable="custom" sort-by="EMP_NO" min-width="80px"></el-table-column>
--
Gitblit v1.9.3