From 3dd3abbc68a1dd587021e205d3bebf4bff3eab46 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 29 一月 2024 17:44:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
company/src/api/business/dispatchUnit.js | 20
company/src/components/enterprise/importEmployees.vue | 48 +
company/src/api/business/member.js | 5
platform/src/api/system/menu.js | 11
company/src/components/enterprise/OperaDispatchUnitWindow.vue | 321 ++++++++++
company/src/components/enterprise/OperaInsuranceApplyWindow.vue | 172 +++++
company/src/components/enterprise/addEmployee.vue | 104 +++
platform/src/components/business/OperaDispatchUnitWindow.vue | 1
company/src/api/system/menu.js | 2
company/src/components/enterprise/selectEmployees.vue | 78 ++
company/src/views/enterprise/dispatchUnit.vue | 116 +++
company/src/api/business/duWorktype.js | 6
platform/vue.config.js | 17
company/src/components/common/UploadAvatarVideo.vue | 128 ++++
/dev/null | 107 ---
platform/src/api/business/solutions.js | 0
platform/.env | 4
platform/src/components/business/dispatchUnitDetails.vue | 1
company/src/components/enterprise/dispatchUnitDetails.vue | 280 ++++++++
company/src/views/enterprise/insuranceApply.vue | 125 +++
company/src/api/business/worktype.js | 5
company/src/components/enterprise/addJobType.vue | 285 ++++++++
platform/.env.development | 16
company/.env.development | 10
24 files changed, 1,710 insertions(+), 152 deletions(-)
diff --git a/company/.env.development b/company/.env.development
index 11666cc..73caf0c 100644
--- a/company/.env.development
+++ b/company/.env.development
@@ -5,4 +5,14 @@
#VUE_APP_API = 'http://192.168.0.134:10023/'
VUE_APP_API = 'http://localhost:10023/'
+# 浼佷笟绔�-浠佸悍
+VUE_APP_API = 'http://192.168.0.134:10025/'
+
+# 骞冲彴绔�-浠佸悍
+# VUE_APP_API = 'http://192.168.0.134:10023/'
+
+# VUE_APP_API = 'http://192.168.0.134:10023/'
+
+# VUE_APP_API = 'http://localhost:10023/'
+
# VUE_APP_API = 'http://192.168.0.134:10023/'
diff --git a/company/src/api/business/dispatchUnit.js b/company/src/api/business/dispatchUnit.js
index af8149a..873ef6f 100644
--- a/company/src/api/business/dispatchUnit.js
+++ b/company/src/api/business/dispatchUnit.js
@@ -11,3 +11,23 @@
export function create (data) {
return request.post('/business/dispatchUnit/create', data)
}
+
+// 淇敼
+export function updateById (data) {
+ return request.post('/business/dispatchUnit/updateById', data)
+}
+
+// 鏍规嵁ID鏌ヨ
+export function getById (id) {
+ return request.get(`/business/dispatchUnit/${id}`)
+}
+
+// 娣诲姞宸ョ
+export function createSolution (data) {
+ return request.post('/business/dispatchUnit/createSolution', data)
+}
+
+// 淇敼淇℃伅
+export function editDispatchUnit (data) {
+ return request.post('/business/dispatchUnit/editDispatchUnit', data)
+}
diff --git a/company/src/api/business/duWorktype.js b/company/src/api/business/duWorktype.js
new file mode 100644
index 0000000..ea873af
--- /dev/null
+++ b/company/src/api/business/duWorktype.js
@@ -0,0 +1,6 @@
+import request from '../../utils/request'
+
+// 鏍规嵁ID鍒犻櫎
+export function deleteById (id) {
+ return request.get(`/business/duWorktype/delete/${id}`)
+}
diff --git a/company/src/api/business/member.js b/company/src/api/business/member.js
index b902304..f336652 100644
--- a/company/src/api/business/member.js
+++ b/company/src/api/business/member.js
@@ -11,3 +11,8 @@
export function create (data) {
return request.post('/business/member/create', data)
}
+
+// 鏁版嵁鍒楄〃
+export function findListByDTO (data) {
+ return request.post('/business/member/findListByDTO', data)
+}
diff --git a/company/src/api/business/worktype.js b/company/src/api/business/worktype.js
index 5d62464..c6fbbfc 100644
--- a/company/src/api/business/worktype.js
+++ b/company/src/api/business/worktype.js
@@ -9,3 +9,8 @@
export function all (data) {
return request.post(`/business/worktype/list`, data)
}
+
+// 鏍规嵁鏉′欢宸ョ鍒楄〃
+export function findListByDTO (data) {
+ return request.post('/business/worktype/findListByDTO', data)
+}
diff --git a/company/src/api/system/menu.js b/company/src/api/system/menu.js
index adad7ad..0bf9f48 100644
--- a/company/src/api/system/menu.js
+++ b/company/src/api/system/menu.js
@@ -41,7 +41,7 @@
// 鏌ヨ鑿滃崟鏍�
export function fetchMenuTree () {
- return request.get('/system/menu/treeNodes?type=0')
+ return request.get('/system/menu/treeNodes?type=1')
}
// 鎺掑簭
diff --git a/company/src/components/common/UploadAvatarVideo.vue b/company/src/components/common/UploadAvatarVideo.vue
new file mode 100644
index 0000000..5031b58
--- /dev/null
+++ b/company/src/components/common/UploadAvatarVideo.vue
@@ -0,0 +1,128 @@
+<template>
+ <div>
+ <el-upload
+ class="avatar-uploader"
+ accept=".mp4"
+ :style="customStyle"
+ :action="uploadImgUrl"
+ :data="uploadData"
+ :show-file-list="false"
+ :on-success="handleAvatarSuccess"
+ :on-error="uploadError"
+ :before-upload="beforeAvatarUpload">
+ <video v-if="file.videourlfull" :src="file.videourlfull" :style="customStyle" class="avatar" />
+ <div v-else :style="customStyle">
+ <i class="el-icon-plus avatar-uploader-icon"></i>
+ <div class="tips-style">{{ tipsLabel }}</div>
+ </div>
+ </el-upload>
+ </div>
+
+</template>
+
+<script>
+export default {
+ props: {
+ file: {
+ type: Object,
+ default: () => {}
+ },
+ tipsLabel: '',
+ customStyle: {
+ type: String,
+ default: 'width: 90px; height: 90px;'
+ },
+ uploadData: Object
+ },
+ data() {
+ return {
+ uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload'
+ }
+ },
+
+ methods: {
+ // 涓婁紶鍥剧墖
+ handleAvatarSuccess(res, file) {
+ if (res.code == 200) {
+ let { data } = res
+ this.file.videourl = data.imgaddr;
+ this.file.videourlfull = data.url;
+ this.$message.success('涓婁紶鎴愬姛')
+ this.$emit('uploadSuccess', { imgurl: data.imgaddr, imgurlfull: data.url, name: data.originname })
+ } else {
+ this.$tip.apiFailed('涓婁紶澶辫触')
+ }
+ this.$emit('uploadEnd')
+ },
+ uploadError() {
+ this.$tip.apiFailed('涓婁紶澶辫触')
+ this.$emit('endUpload')
+ },
+ // // 鎷︽埅
+ beforeAvatarUpload(file) {
+ this.$emit('uploadBegin')
+ return true
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+$image-width: 100px;
+.avatar-uploader {
+ width: $image-width;
+ height: $image-width;
+}
+::v-deep .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ width: $image-width;
+ height: $image-width;
+ overflow: hidden;
+}
+.avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+}
+.avatar-uploader-icon {
+ line-height: 90px;
+ font-size: 28px;
+ color: #8c939d;
+ width: $image-width;
+ height: $image-width;
+ text-align: center;
+}
+.avatar {
+ width: $image-width;
+ height: $image-width;
+ display: block;
+}
+.tips-style {
+ height: 13px;
+ font-size: 13px;
+ font-weight: 400;
+ color: #999999;
+ line-height: 13px;
+}
+</style>
+<style lang="scss" scoped>
+::v-deep .el-upload--picture-card{
+ width: 90px !important;
+ height: 90px !important;
+}
+::v-deep .el-upload-list__item {
+ width: 90px !important;
+ height: 90px !important;
+}
+.icon {
+ -webkit-transform: translate(-50%,-50%);
+ -ms-transform: translate(-50%,-50%);
+ transform: translate(0%, -85%);
+}
+::v-deep .el-upload-list__item {
+ width: 90px !important;
+ height: 90px !important;
+}
+</style>
+
diff --git a/company/src/components/enterprise/OperaDispatchUnitWindow.vue b/company/src/components/enterprise/OperaDispatchUnitWindow.vue
new file mode 100644
index 0000000..87892b7
--- /dev/null
+++ b/company/src/components/enterprise/OperaDispatchUnitWindow.vue
@@ -0,0 +1,321 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :model="form" ref="form" :rules="rules">
+ <el-form-item label="娲鹃仯鍗曚綅鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ <el-form-item label="娲鹃仯鍗曚綅淇$敤浠g爜" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ <el-form-item label="娲鹃仯鍗曚綅鎻忚堪" prop="content">
+ <el-input v-model="form.content" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ </el-form>
+ <div class="list" v-if="form.type !== 1">
+ <el-button type="primary" style="margin-bottom: 15px;" @click="add">娣诲姞鏂规</el-button>
+ <div class="list_item" v-for="(item, index) in form.saveDuSolutionDTOList" :key="index">
+ <div class="list_item_input">
+ <div class="list_item_input_label"><span>*</span>淇濋櫓鏂规</div>
+ <div class="list_item_input_val">
+ <el-select v-model="item.solutionId" @change="changeTypeWork($event, index)" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in insuranceScheme"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ <div style="display: flex; align-items: center;">
+ <el-button type="primary" @click="addItem(index)">娣诲姞</el-button>
+ <el-button type="danger" @click="deleItem(index)">鍒犻櫎</el-button>
+ </div>
+ </div>
+ </div>
+ <div class="list_item_table">
+ <el-table
+ :data="item.saveDuWorkTypeDTOList"
+ border
+ style="width: 100%">
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="name"
+ label="鎵�灞炲伐绉�">
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.workTypeId" @change="changeGZ($event, index, scope.$index)" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in item.typeWork"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="address"
+ label="鎿嶄綔瑙嗛锛堥潪蹇呭~锛�">
+ <template slot-scope="scope">
+ <div style="width: 100px; height: 100px;">
+ <UploadAvatarVideo :uploadData="{ folder: 'unit' }" :file="scope.row.file" @uploadSuccess="result($event, index, scope.$index)" />
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ width="90"
+ fixed="right">
+ <template slot-scope="scope">
+ <el-button type="text" @click="dele(index, scope.$index)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+ </div>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import UploadAvatarVideo from '@/components/common/UploadAvatarVideo'
+import { all } from '@/api/business/solutions'
+import { findListByDTO } from '@/api/business/worktype'
+import { editDispatchUnit } from '@/api/business/dispatchUnit'
+export default {
+ name: 'OperaDispatchUnitWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow, UploadAvatarVideo },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ name: '',
+ code: '',
+ content: '',
+ type: '',
+ saveDuSolutionDTOList: [
+ {
+ id: '',
+ saveDuWorkTypeDTOList: [
+ {
+ videoUrl: '',
+ workTypeId: '',
+ workTypeName: '',
+ file: {
+ videourl: '',
+ videourlfull: ''
+ }
+ }
+ ],
+ typeWork: [],
+ solutionId: '',
+ solutionName: ''
+ }
+ ]
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ name: [
+ { required: true, message: '璇疯緭鍏ユ淳閬e崟浣嶅悕绉�' }
+ ],
+ code: [
+ { required: true, message: '璇疯緭鍏ユ淳閬e崟浣嶄俊鐢ㄤ唬鐮�' }
+ ],
+ content: [
+ { required: true, message: '璇疯緭鍏ユ淳閬e崟浣嶆弿杩�' }
+ ]
+ },
+ insuranceScheme: []
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/dispatchUnit',
+ 'field.id': 'id'
+ })
+ all({})
+ .then(res => {
+ this.insuranceScheme = res
+ })
+ },
+ methods: {
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ this.form.saveDuSolutionDTOList = [
+ {
+ id: '',
+ saveDuWorkTypeDTOList: [
+ {
+ videoUrl: '',
+ workTypeId: '',
+ workTypeName: '',
+ file: {
+ videourl: '',
+ videourlfull: ''
+ }
+ }
+ ],
+ typeWork: [],
+ solutionId: '',
+ solutionName: ''
+ }
+ ]
+ // 鏂板缓
+ if (target == null) {
+ this.$nextTick(() => {
+ this.$refs.form.resetFields()
+ this.form[this.configData['field.id']] = null
+ })
+ return
+ }
+ // 缂栬緫
+ this.$nextTick(() => {
+ for (const key in this.form) {
+ this.form[key] = target[key]
+ }
+ })
+ },
+ // 纭淇敼
+ __confirmEdit () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ editDispatchUnit(this.form)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('淇敼鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ })
+ },
+ // 鍒囨崲宸ョ
+ changeGZ(a, b, c) {
+ let text = ''
+ this.form.saveDuSolutionDTOList[b].typeWork.forEach(item => {
+ if (item.id === a) {
+ text = item.name
+ }
+ })
+ this.form.saveDuSolutionDTOList[b].saveDuWorkTypeDTOList[c].workTypeName = text
+ },
+ // 鍒囨崲鏂规
+ changeTypeWork(id, index) {
+ findListByDTO({ queryType: 0, id })
+ .then(res => {
+ this.form.saveDuSolutionDTOList[index].typeWork = res
+ })
+ let text = ''
+ this.insuranceScheme.forEach(item => {
+ if (item.id === id) {
+ text = item.name
+ }
+ })
+ this.form.saveDuSolutionDTOList[index].solutionName = text
+ },
+ add() {
+ this.form.saveDuSolutionDTOList.unshift({
+ id: '',
+ saveDuWorkTypeDTOList: [
+ {
+ videoUrl: '',
+ workTypeId: '',
+ workTypeName: '',
+ file: {
+ videourl: '',
+ videourlfull: ''
+ }
+ }
+ ],
+ typeWork: [],
+ solutionId: '',
+ solutionName: ''
+ })
+ },
+ addItem(index) {
+ this.form.saveDuSolutionDTOList[index].saveDuWorkTypeDTOList.push({
+ videoUrl: '',
+ workTypeId: '',
+ file: {
+ videourl: '',
+ videourlfull: ''
+ }
+ })
+ },
+ deleItem(index) {
+ if (this.form.saveDuSolutionDTOList.length === 1) {
+ this.$message.warning('鑷冲皯淇濈暀涓�椤瑰唴瀹�')
+ return
+ }
+ this.form.saveDuSolutionDTOList.splice(index, 1)
+ },
+ result(e, a, b) {
+ this.form.saveDuSolutionDTOList[a].saveDuWorkTypeDTOList[b].videoUrl = e.imgurl
+ },
+ dele(a, b) {
+ if (this.form.saveDuSolutionDTOList[a].saveDuWorkTypeDTOList.length === 1) {
+ this.$message.warning('鑷冲皯淇濈暀涓�椤瑰唴瀹�')
+ return
+ }
+ this.form.saveDuSolutionDTOList[a].saveDuWorkTypeDTOList.splice(b, 1)
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+ .list {
+ width: 100%;
+ margin-bottom: 20px;
+ .list_item {
+ width: 100%;
+ margin-bottom: 20px;
+ &:last-child {
+ margin: 0 !important;
+ }
+ .list_item_input {
+ width: 100%;
+ margin-bottom: 15px;
+ .list_item_input_label {
+ margin-bottom: 10px;
+ font-size: 14px;
+ color: #606266;
+ span {
+ color: red;
+ margin-right: 4px;
+ }
+ }
+ .list_item_input_val {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+ }
+ .list_item_table {
+
+ }
+ }
+ }
+</style>
diff --git a/company/src/components/enterprise/OperaInsuranceApplyWindow.vue b/company/src/components/enterprise/OperaInsuranceApplyWindow.vue
new file mode 100644
index 0000000..5b6018b
--- /dev/null
+++ b/company/src/components/enterprise/OperaInsuranceApplyWindow.vue
@@ -0,0 +1,172 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :withFooter="false"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <div class="list">
+ <el-form :inline="true" :model="form" :rules="rules" class="demo-form-inline">
+ <el-form-item label="淇濋櫓鏂规" prop="solutionId">
+ <el-select v-model="form.solutionId" placeholder="璇烽�夋嫨">
+ <el-option label="鍖哄煙涓�" value="shanghai"></el-option>
+ <el-option label="鍖哄煙浜�" value="beijing"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鏈熸湜淇濋櫓鐢熸晥璧锋湡" prop="applyStartTime">
+ <div style="display: flex; flex-direction: column;">
+ <el-date-picker
+ v-model="form.applyStartTime"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡">
+ </el-date-picker>
+ <span style="color: #F95601; font-size: 14px;">锛堟鏃ョ敓鏁堟姇淇濊浜�17:30鍓嶆彁浜わ紝瓒呮椂鎻愪氦浠ヤ繚闄╁崟涓哄噯锛�</span>
+ </div>
+ </el-form-item>
+ <el-form-item label="淇濋櫓鐢熸晥姝㈡湡" prop="applyEndTime">
+ <el-date-picker
+ v-model="form.applyEndTime"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡">
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item label="鎶曚繚骞撮緞">
+ <span>25鑷�65</span>
+ </el-form-item>
+ <el-form-item label="璐圭敤">
+ <span>200鍏�/骞�/浜�</span>
+ </el-form-item>
+ </el-form>
+ </div>
+ <div class="btns">
+ <div class="btns_item">
+ <el-button type="primary" @click="$refs.selectEmployees.open('閫夊彇鍛樺伐')">閫夊彇鍛樺伐</el-button>
+ <el-button type="primary">瀵煎叆鍛樺伐</el-button>
+ <el-button type="primary" @click="$refs.addEmployee.open('娣诲姞鍛樺伐', tableData)">娣诲姞鍛樺伐</el-button>
+ </div>
+ <div class="btns_item">
+ <el-button type="primary">閫夊彇娲鹃仯鍗曚綅</el-button>
+ </div>
+ </div>
+ <el-table
+ :data="tableData"
+ border
+ style="width: 100%;margin-bottom: 15px;">
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="name"
+ label="濮撳悕">
+ </el-table-column>
+ <el-table-column
+ prop="idcardNo"
+ label="韬唤璇佸彿">
+ </el-table-column>
+ <el-table-column
+ prop="address"
+ label="骞撮緞">
+ </el-table-column>
+ <el-table-column
+ prop="address"
+ label="娲鹃仯鍗曚綅">
+ </el-table-column>
+ <el-table-column
+ prop="address"
+ label="鎵�灞炲伐绉�">
+ </el-table-column>
+ <el-table-column
+ prop="address"
+ label="璐圭敤">
+ </el-table-column>
+ <el-table-column
+ prop="address"
+ label="鎿嶄綔">
+ </el-table-column>
+ </el-table>
+ <div class="submit">
+ <el-button type="primary">鎶曚繚鐢宠</el-button>
+ </div>
+ <div class="info">
+ 瀵屾枃鏈�
+ </div>
+ <!-- 閫夋嫨鍛樺伐 -->
+ <selectEmployees ref="selectEmployees" />
+ <!-- 娣诲姞鍛樺伐 -->
+ <addEmployee ref="addEmployee" @result="getValue" />
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import selectEmployees from '@/components/enterprise/selectEmployees'
+import addEmployee from '@/components/enterprise/addEmployee'
+export default {
+ name: 'OperaInsuranceApplyWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow, selectEmployees, addEmployee },
+ data () {
+ return {
+ form: {
+ id: null,
+ solutionId: '',
+ applyStartTime: '',
+ applyEndTime: ''
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {
+ solutionId: [
+ { required: true, message: '璇烽�夋嫨淇濋櫓鏂规' }
+ ],
+ applyStartTime: [
+ { required: true, message: '璇烽�夋嫨鏈熸湜淇濋櫓鐢熸晥璧锋湡' }
+ ]
+ },
+ tableData: []
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/insuranceApply',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ getValue(list) {
+ this.tableData.push(...list)
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+ .list {
+ width: 100%;
+ }
+ .btns {
+ width: 100%;
+ margin-bottom: 15px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .btns_item {
+ display: flex;
+ align-items: center;
+ }
+ }
+ .submit {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 15px;
+ }
+ .info {
+ width: 100%;
+ }
+</style>
diff --git a/company/src/components/enterprise/addEmployee.vue b/company/src/components/enterprise/addEmployee.vue
new file mode 100644
index 0000000..075e407
--- /dev/null
+++ b/company/src/components/enterprise/addEmployee.vue
@@ -0,0 +1,104 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :inline="true" class="demo-form-inline">
+ <div v-for="(item, index) in list" :key="index">
+ <el-form-item label="濮撳悕" required>
+ <el-input v-model="item.name" placeholder="璇疯緭鍏�"></el-input>
+ </el-form-item>
+ <el-form-item label="韬唤璇佸彿" required>
+ <el-input v-model="item.idcardNo" maxlength="18" placeholder="璇疯緭鍏�"></el-input>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" v-if="index === 0" @click="add">娣诲姞</el-button>
+ <el-button type="danger" v-else @click="dele(index)">鍒犻櫎</el-button>
+ </el-form-item>
+ </div>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ export default {
+ name: 'addEmployee',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ list: [
+ {
+ name: '',
+ idcardNo: ''
+ }
+ ],
+ arr: []
+ }
+ },
+ methods: {
+ open (title, arr) {
+ this.title = title
+ this.visible = true
+ this.list = [
+ {
+ name: '',
+ idcardNo: ''
+ }
+ ]
+ this.arr = arr
+ },
+ add() {
+ this.list.push({
+ name: '',
+ idCard: ''
+ })
+ },
+ dele(index) {
+ this.form.list.splice(index, 1)
+ },
+ hasDuplicates(arr) {
+ return arr.some((value, index) => arr.indexOf(value) !== index);
+ },
+ confirm() {
+ // 鍒ゆ柇鍒楄〃鍚︽槸鏈夌┖鍊�
+ for (let i = 0; this.list.length; i++) {
+ if (!this.list[i].name || !this.list[i].idcardNo) {
+ this.$message.warning('璇峰厛瀹屽杽淇℃伅鍚庡啀鎻愪氦')
+ return
+ }
+ }
+ // 鍒ゆ柇鏂板綍鍏ユ暟鎹韩浠借瘉鏄惁鏈夐噸澶�
+ let idcardList = this.list.map(item => item.idcardNo)
+ if (this.hasDuplicates(idcardList)) {
+ this.$message.warning('韬唤璇佹湁閲嶅')
+ return
+ }
+ // 鍒ゆ柇璇︽儏鍒楄〃鏁版嵁韬唤璇佹槸鍚︽湁閲嶅
+ let next = true
+ this.list.forEach(item => {
+ this.arr.forEach(child => {
+ if (item.idcardNo === child.idcardNo) {
+ next = false
+ }
+ })
+ })
+ if (next) {
+ this.$emit('result', this.list)
+ this.visible = false
+ } else {
+ this.$message.warning('韬唤璇佸彿涓嶈兘閲嶅锛�')
+ }
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/company/src/components/enterprise/addJobType.vue b/company/src/components/enterprise/addJobType.vue
new file mode 100644
index 0000000..7c422de
--- /dev/null
+++ b/company/src/components/enterprise/addJobType.vue
@@ -0,0 +1,285 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <div class="list">
+ <el-button type="primary" style="margin-bottom: 15px;" @click="add">娣诲姞鏂规</el-button>
+ <div class="list_item" v-for="(item, index) in form.saveDuSolutionDTOList" :key="index">
+ <div class="list_item_input">
+ <div class="list_item_input_label"><span>*</span>淇濋櫓鏂规</div>
+ <div class="list_item_input_val">
+ <el-select v-model="item.solutionId" @change="changeTypeWork($event, index)" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in insuranceScheme"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ <div style="display: flex; align-items: center;">
+ <el-button type="primary" @click="addItem(index)">娣诲姞</el-button>
+ <el-button type="danger" @click="deleItem(index)">鍒犻櫎</el-button>
+ </div>
+ </div>
+ </div>
+ <div class="list_item_table">
+ <el-table
+ :data="item.saveDuWorkTypeDTOList"
+ border
+ style="width: 100%">
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="name"
+ label="鎵�灞炲伐绉�">
+ <template slot-scope="scope">
+ <el-select v-model="scope.row.workTypeId" @change="changeGZ($event, index, scope.$index)" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in item.typeWork"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="address"
+ label="鎿嶄綔瑙嗛锛堥潪蹇呭~锛�">
+ <template slot-scope="scope">
+ <div style="width: 100px; height: 100px;">
+ <UploadAvatarVideo :uploadData="{ folder: 'unit' }" :file="scope.row.file" @uploadSuccess="result($event, index, scope.$index)" />
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ width="90"
+ fixed="right">
+ <template slot-scope="scope">
+ <el-button type="text" @click="dele(index, scope.$index)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+ </div>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import UploadAvatarVideo from '@/components/common/UploadAvatarVideo'
+ import { all } from '@/api/business/solutions'
+ import { findListByDTO } from '@/api/business/worktype'
+ import { createSolution } from '@/api/business/dispatchUnit'
+ export default {
+ name: 'addJobType',
+ extends: BaseOpera,
+ components: { GlobalWindow, UploadAvatarVideo },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ saveDuSolutionDTOList: [
+ {
+ id: '',
+ saveDuWorkTypeDTOList: [
+ {
+ videoUrl: '',
+ workTypeId: '',
+ workTypeName: '',
+ file: {
+ videourl: '',
+ videourlfull: ''
+ }
+ }
+ ],
+ typeWork: [],
+ solutionId: '',
+ solutionName: ''
+ }
+ ]
+ },
+ insuranceScheme: []
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/dispatchUnit',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ confirm() {
+ for (let i = 0; i < this.form.saveDuSolutionDTOList.length; i++) {
+ if (!this.form.saveDuSolutionDTOList[i].solutionId) {
+ this.$message.warning(`绗�${i + 1}椤规柟妗堜笉鑳戒负绌猴紒`)
+ return
+ }
+ for (let a = 0; a < this.form.saveDuSolutionDTOList[i].saveDuWorkTypeDTOList.length; a++) {
+ if (!this.form.saveDuSolutionDTOList[i].saveDuWorkTypeDTOList[a].workTypeId) {
+ this.$message.warning(`绗�${i + 1}椤规柟妗堝伐绉嶄笉鑳戒负绌猴紒`)
+ return
+ }
+ }
+ }
+ this.isWorking = true
+ createSolution(this.form)
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ },
+ deleItem(index) {
+ if (this.form.saveDuSolutionDTOList.length === 1) {
+ this.$message.warning('鑷冲皯淇濈暀涓�椤瑰唴瀹�')
+ return
+ }
+ this.form.saveDuSolutionDTOList.splice(index, 1)
+ },
+ open (title, target) {
+ this.title = title
+ this.visible = true
+ this.form.id = target.id
+ this.form.saveDuSolutionDTOList = [
+ {
+ id: '',
+ saveDuWorkTypeDTOList: [
+ {
+ videoUrl: '',
+ workTypeId: '',
+ workTypeName: '',
+ file: {
+ videourl: '',
+ videourlfull: ''
+ }
+ }
+ ],
+ typeWork: [],
+ solutionId: '',
+ solutionName: ''
+ }
+ ]
+ all({})
+ .then(res => {
+ this.insuranceScheme = res
+ })
+ },
+ // 鍒囨崲宸ョ
+ changeGZ(a, b, c) {
+ let text = ''
+ this.form.saveDuSolutionDTOList[b].typeWork.forEach(item => {
+ if (item.id === a) {
+ text = item.name
+ }
+ })
+ this.form.saveDuSolutionDTOList[b].saveDuWorkTypeDTOList[c].workTypeName = text
+ },
+ addItem(index) {
+ this.form.saveDuSolutionDTOList[index].saveDuWorkTypeDTOList.push({
+ videoUrl: '',
+ workTypeId: '',
+ file: {
+ videourl: '',
+ videourlfull: ''
+ }
+ })
+ },
+ result(e, a, b) {
+ this.form.saveDuSolutionDTOList[a].saveDuWorkTypeDTOList[b].videoUrl = e.imgurl
+ },
+ dele(a, b) {
+ if (this.form.saveDuSolutionDTOList[a].saveDuWorkTypeDTOList.length === 1) {
+ this.$message.warning('鑷冲皯淇濈暀涓�椤瑰唴瀹�')
+ return
+ }
+ this.form.saveDuSolutionDTOList[a].saveDuWorkTypeDTOList.splice(b, 1)
+ },
+ add() {
+ this.form.saveDuSolutionDTOList.unshift({
+ id: '',
+ saveDuWorkTypeDTOList: [
+ {
+ videoUrl: '',
+ workTypeId: '',
+ workTypeName: '',
+ file: {
+ videourl: '',
+ videourlfull: ''
+ }
+ }
+ ],
+ typeWork: [],
+ solutionId: ''
+ })
+ },
+ // 鍒囨崲鏂规
+ changeTypeWork(id, index) {
+ console.log(index)
+ findListByDTO({ queryType: 0, id })
+ .then(res => {
+ this.form.saveDuSolutionDTOList[index].typeWork = res
+ })
+ let text = ''
+ this.insuranceScheme.forEach(item => {
+ if (item.id === id) {
+ text = item.name
+ }
+ })
+ this.form.saveDuSolutionDTOList[index].solutionName = text
+ },
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .list {
+ width: 100%;
+ margin-bottom: 20px;
+ .list_item {
+ width: 100%;
+ margin-bottom: 20px;
+ &:last-child {
+ margin: 0 !important;
+ }
+ .list_item_input {
+ width: 100%;
+ margin-bottom: 15px;
+ .list_item_input_label {
+ margin-bottom: 10px;
+ font-size: 14px;
+ color: #606266;
+ span {
+ color: red;
+ margin-right: 4px;
+ }
+ }
+ .list_item_input_val {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ }
+ }
+ .list_item_table {
+
+ }
+ }
+ }
+</style>
diff --git a/company/src/components/enterprise/dispatchUnitDetails.vue b/company/src/components/enterprise/dispatchUnitDetails.vue
new file mode 100644
index 0000000..33c07bd
--- /dev/null
+++ b/company/src/components/enterprise/dispatchUnitDetails.vue
@@ -0,0 +1,280 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <div class="info">
+ <div class="info_list">
+ <div class="info_list_item">
+ <div class="info_list_item_label">娲鹃仯鍗曚綅锛�</div>
+ <div class="info_list_item_val">{{form.name}}</div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">娲鹃仯鍗曚綅淇$敤浠g爜锛�</div>
+ <div class="info_list_item_val">{{form.code}}</div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">娲鹃仯鍗曚綅鐘舵�侊細</div>
+ <div class="info_list_item_val" v-if="form.unitStatus === 0">寰呭鏍�</div>
+ <div class="info_list_item_val" style="color: green;" v-if="form.unitStatus === 1">瀹℃牳閫氳繃</div>
+ <div class="info_list_item_val" style="color: red;" v-if="form.unitStatus === 2">瀹℃牳涓嶉�氳繃</div>
+ </div>
+ <div class="info_list_item">
+ <div class="info_list_item_label">娲鹃仯鍗曚綅璇﹁堪锛�</div>
+ <div class="info_list_item_val">{{form.content}}</div>
+ </div>
+ </div>
+ <div class="info_btns">
+ <el-button type="primary" @click="edit">淇敼娲鹃仯鍗曚綅</el-button>
+ <el-button type="primary" @click="$refs.addJobType.open('娣诲姞宸ョ', { id: form.id })">娣诲姞宸ョ</el-button>
+ </div>
+ <div class="info_table">
+ <div class="info_table_item" v-for="(item, index) in form.duSolutionList" :key="index">
+ <div class="info_table_item_label">淇濋櫓鏂规锛歿{item.solutionName}}</div>
+ <div class="info_table_item_content">
+ <el-table
+ :data="item.duWorktypeList"
+ border
+ style="width: 100%">
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="workTypeName"
+ label="鎵�灞炲伐绉�">
+ </el-table-column>
+ <el-table-column
+ prop="name"
+ label="鎿嶄綔瑙嗛">
+ <template slot-scope="{row}">
+ <video loop controls width="150px" height="150px" :src="row.videoUrlFull"></video>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="checkDate"
+ label="瀹℃牳閫氳繃鏃ユ湡">
+ </el-table-column>
+ <el-table-column
+ label="鐘舵��">
+ <template slot-scope="{row}">
+ <span v-if="row.status === 0">寰呭鏍�</span>
+ <span v-if="row.status === 1">瀹℃牳閫氳繃</span>
+ <span v-if="row.status === 2">瀹℃牳涓嶉�氳繃</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔">
+ <template slot-scope="scope">
+ <el-button type="text" style="color: red;" v-if="scope.row.status === 2" @click="dele(scope.row.id, index, scope.$index)">鍒犻櫎</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </div>
+ </div>
+ <div class="info_status">
+ <div class="info_status_label">瀹℃牳娴佺▼</div>
+ <div class="info_status_list">
+ <el-timeline :reverse="reverse">
+ <el-timeline-item
+ v-for="(activity, index) in form.duLogList"
+ :key="index">
+ <div style="display: flex; flex-direction: column;">
+ <span style="font-size: 16px; font-weight: 400; color: black;">
+ {{activity.title}}
+ <span style="font-size: 16px; font-weight: 400; color: black; margin-left: 10px;" v-if="activity.objType === 5 || activity.objType === 6 || activity.objType === 1 || activity.objType === 2">
+ 鎻愪氦鎰忚: -
+ </span>
+ </span>
+ <span style="margin-top: 5px; font-size: 12px; font-weight: 400; color: #999999;">
+ 鎿嶄綔鍛�-{{activity.creatorName}}锛坽{activity.companyName}}锛墈{activity.createDate}}
+ </span>
+ </div>
+ </el-timeline-item>
+ </el-timeline>
+ </div>
+ </div>
+ </div>
+ <!-- 娣诲姞鏂规 -->
+ <addJobType ref="addJobType" @success="callback" />
+ <!-- 缂栬緫 -->
+ <OperaDispatchUnitWindow ref="OperaDispatchUnitWindow" @success="callback" />
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import addJobType from '@/components/enterprise/addJobType'
+ import OperaDispatchUnitWindow from '@/components/enterprise/OperaDispatchUnitWindow'
+ import { getById } from '@/api/business/dispatchUnit'
+ import { deleteById } from '@/api/business/duWorktype'
+ export default {
+ name: 'dispatchUnitDetails',
+ extends: BaseOpera,
+ components: { GlobalWindow, addJobType, OperaDispatchUnitWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ name: '',
+ code: '',
+ content: '',
+ unitStatus: '',
+ duLogList: [],
+ duSolutionList: [],
+ saveDuSolutionDTOList: [
+ {
+ id: '',
+ saveDuWorkTypeDTOList: [
+ {
+ videoUrl: '',
+ workTypeId: '',
+ file: {
+ videourl: '',
+ videourlfull: ''
+ }
+ }
+ ],
+ typeWork: [],
+ solutionId: ''
+ }
+ ]
+ },
+ tableData: [],
+ insuranceScheme: [],
+ reverse: true,
+ activities: []
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/dispatchUnit',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ edit() {
+ this.$confirm('淇敼娲鹃仯鍗曚綅浼氬鑷磋娲鹃仯鍗曚綅涓嶅彲鐢紝濡傛偍闇�瑕佷慨鏀硅娲鹃仯鍗曚綅鐨勪娇鐢ㄤ繚闄╂柟妗堝強宸ョ璇风偣鍑烩�滄坊鍔犲伐绉嶁�濇寜閽��', '娓╅Θ鎻愰啋', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.$refs.OperaDispatchUnitWindow.open('缂栬緫娲鹃仯鍗曚綅', {
+ id: this.form.id,
+ name: this.form.name,
+ code: this.form.code,
+ content: this.form.content,
+ type: 1
+ })
+ }).catch(() => {
+
+ });
+ },
+ dele (id, b, c) {
+ this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ュ伐绉�, 鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ deleteById(id)
+ .then(res => {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.getDetails()
+ })
+ }).catch(() => {
+
+ });
+ },
+ open (title, target) {
+ this.title = title
+ this.form.id = target.id
+ this.visible = true
+ this.getDetails()
+ },
+ async getDetails() {
+ let res = await getById(this.form.id)
+ for (const key in this.form) {
+ this.form[key] = res[key]
+ }
+ },
+ callback() {
+ this.visible = false
+ this.$emit('success')
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .info {
+ width: 100%;
+ .info_list {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ .info_list_item {
+ width: 33.3%;
+ display: flex;
+ align-items: center;
+ margin-bottom: 15px;
+ .info_list_item_label {
+ flex-shrink: 0;
+ width: 150px;
+ font-size: 14px;
+ color: black;
+ }
+ .info_list_item_val {
+ flex: 1;
+ font-size: 14px;
+ color: black;
+ }
+ }
+ }
+ .info_btns {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ margin-bottom: 15px;
+ }
+ .info_table {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 15px;
+ .info_table_item {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 15px;
+ &:last-child {
+ margin: 0 !important;
+ }
+ .info_table_item_label {
+ font-size: 14px;
+ color: black;
+ margin-bottom: 10px;
+ }
+ .info_table_item_content {
+ width: 100%;
+ }
+ }
+ }
+ .info_status {
+ width: 100%;
+ .info_status_label {
+ width: 100%;
+ font-size: 18px;
+ font-weight: bold;
+ margin-bottom: 15px;
+ }
+ }
+ }
+</style>
diff --git a/company/src/components/enterprise/importEmployees.vue b/company/src/components/enterprise/importEmployees.vue
new file mode 100644
index 0000000..ccba938
--- /dev/null
+++ b/company/src/components/enterprise/importEmployees.vue
@@ -0,0 +1,48 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form class="demo-form-inline">
+ <el-form-item label="涓婁紶鍚嶅崟" required>
+ <el-button type="primary" @click="clickRef">鐐瑰嚮涓婁紶</el-button>
+ <el-button type="text">鍚嶅崟妯℃澘.EXCEL</el-button>
+ </el-form-item>
+ </el-form>
+ <input type="file" accept=".excel" ref="fileExcel" @change="result" />
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ export default {
+ name: 'importEmployees',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ list: []
+ }
+ },
+ methods: {
+ open (title, arr) {
+ this.title = title
+ this.visible = true
+ },
+ clickRef () {
+ this.$refs.fileExcel.click()
+ },
+ result (e) {
+ console.log(e)
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/company/src/components/enterprise/selectEmployees.vue b/company/src/components/enterprise/selectEmployees.vue
new file mode 100644
index 0000000..c25116c
--- /dev/null
+++ b/company/src/components/enterprise/selectEmployees.vue
@@ -0,0 +1,78 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-input v-model="val" placeholder="鏌ヨ鍛樺伐濮撳悕" @keypress.enter.native="getList" style="margin-bottom: 15px;"></el-input>
+ <el-table
+ :data="list"
+ border
+ style="width: 100%">
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="date"
+ label="濮撳悕">
+ </el-table-column>
+ <el-table-column
+ prop="name"
+ label="韬唤璇佸彿">
+ </el-table-column>
+ <el-table-column
+ prop="address"
+ label="娲鹃仯鍗曚綅">
+ </el-table-column>
+ <el-table-column
+ prop="address"
+ label="鎵�灞炲伐绉�">
+ </el-table-column>
+ </el-table>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import { findListByDTO } from '@/api/business/member'
+ export default {
+ name: 'selectEmployees',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ val: '',
+ list: []
+ }
+ },
+ created () {
+ this.config({
+ api: '/business/dispatchUnit',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ open (title) {
+ this.title = title
+ this.visible = true
+ this.getList()
+ },
+ getList() {
+ findListByDTO({
+ name: this.val
+ }).then(res => {
+ this.list = []
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/company/src/views/enterprise/dispatchUnit.vue b/company/src/views/enterprise/dispatchUnit.vue
new file mode 100644
index 0000000..5d7a04b
--- /dev/null
+++ b/company/src/views/enterprise/dispatchUnit.vue
@@ -0,0 +1,116 @@
+<template>
+ <TableLayout :permissions="['business:dispatchunit: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>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:dispatchunit:create']">
+ <li><el-button type="primary" @click="$refs.operaDispatchUnitWindow.open('娣诲姞娲鹃仯鍗曚綅')" v-permissions="['business:dispatchunit:create']">鏂板娲鹃仯鍗曚綅</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="name" label="娲鹃仯鍗曚綅"></el-table-column>
+ <el-table-column label="浼佷笟鐘舵��">
+ <template slot-scope="{row}">
+ <span v-if="row.unitStatus === 0">寰呭鏍�</span>
+ <span v-if="row.unitStatus === 1" style="color: green;">瀹℃牳閫氳繃</span>
+ <span v-if="row.unitStatus === 2" style="color: red;">瀹℃牳涓嶉�氳繃</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="createDate" label="娣诲姞鏃ユ湡"></el-table-column>
+ <el-table-column label="鏄惁鍋滅敤">
+ <template slot-scope="{row}">
+ <el-switch
+ @change="changeStatus($event, row)"
+ v-model="row.status"
+ active-color="#13ce66"
+ inactive-color="#ff4949"
+ :active-value="1"
+ :inactive-value="0">
+ </el-switch>
+ </template>
+ </el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:dispatchunit:update', 'business:dispatchunit:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.dispatchUnitDetails.open('娲鹃仯鍗曚綅璇︽儏', row)" v-permissions="['business:dispatchunit:update']">鏌ョ湅璇︽儏</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaDispatchUnitWindow ref="operaDispatchUnitWindow" @success="handlePageChange"/>
+ <!-- 璇︽儏 -->
+ <dispatchUnitDetails ref="dispatchUnitDetails" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaDispatchUnitWindow from '@/components/enterprise/OperaDispatchUnitWindow'
+import dispatchUnitDetails from '@/components/enterprise/dispatchUnitDetails'
+import { updateById } from '@/api/business/dispatchUnit'
+export default {
+ name: 'DispatchUnit',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaDispatchUnitWindow, dispatchUnitDetails },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ name: '',
+ dataType: 0
+ }
+ }
+ },
+ created () {
+ this.config({
+ module: '娲鹃仯鍗曚綅淇℃伅琛�',
+ api: '/business/dispatchUnit',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ },
+ methods: {
+ // 淇敼鐘舵��
+ changeStatus(status, row) {
+ updateById({ status, id: row.id })
+ .then(res => {
+ this.search()
+ })
+ .catch(err => {
+ row.status = row.status === 0 ? 1 : 0
+ })
+ }
+ }
+}
+</script>
diff --git a/company/src/views/enterprise/insuranceApply.vue b/company/src/views/enterprise/insuranceApply.vue
new file mode 100644
index 0000000..8fd1d43
--- /dev/null
+++ b/company/src/views/enterprise/insuranceApply.vue
@@ -0,0 +1,125 @@
+<template>
+ <TableLayout :permissions="['business:insuranceapply:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="鐘舵��" prop="status">
+ <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @keypress.enter.native="search">
+ <el-option label="寰呭鎵�" value="0"></el-option>
+ <el-option label="寰呯缃�" value="2"></el-option>
+ <el-option label="宸茬缃�" value="3"></el-option>
+ <el-option label="宸叉挙閿�" value="7"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="淇濋櫓鏂规" prop="baseSolutionId">
+ <el-select v-model="searchForm.baseSolutionId" placeholder="璇烽�夋嫨" @change="search">
+ <el-option
+ v-for="item in solutionList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎻愪氦鏃ユ湡" prop="createDate">
+ <el-date-picker
+ v-model="searchForm.createDate"
+ @change="search"
+ type="daterange"
+ range-separator="鑷�"
+ value-format="yyyy-MM-dd"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡">
+ </el-date-picker>
+ </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>
+ <ul class="toolbar" v-permissions="['business:dispatchunit:create']">
+ <li><el-button type="primary" @click="$refs.OperaInsuranceApplyWindow.open('鎶曚繚鐢宠')">鎶曚繚鐢宠</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="status" label="鐘舵��"></el-table-column>
+ <el-table-column prop="solutionsName" label="淇濋櫓鏂规"></el-table-column>
+ <el-table-column prop="insureNum" label="鎶曚繚浜烘暟"></el-table-column>
+ <el-table-column prop="serviceDays" label="鎶曚繚鏃堕暱锛堝ぉ锛�"></el-table-column>
+ <el-table-column prop="fee" label="鎬昏垂鐢紙鍏冿級"></el-table-column>
+ <el-table-column prop="createTimeS" label="鎻愪氦鏃ユ湡"></el-table-column>
+ <el-table-column prop="endTimeE" label="鎶曚繚鐢熸晥鏃ユ湡"></el-table-column>
+ <el-table-column prop="endTimeS" label="鎶曚繚澶辨晥鏃ユ湡"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:insuranceapply:update', 'business:insuranceapply:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaInsuranceApplyWindow.open('缂栬緫鎶曚繚鐢宠淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:insuranceapply:update']">鏌ョ湅璇︽儏</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板鎶曚繚 -->
+ <OperaInsuranceApplyWindow ref="OperaInsuranceApplyWindow" @sucess="handlePageChange" />
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaInsuranceApplyWindow from '@/components/enterprise/OperaInsuranceApplyWindow'
+import { all as solutionAll} from '@/api/business/solutions'
+export default {
+ name: 'InsuranceApply',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaInsuranceApplyWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ createTimeS: '',
+ createTimeE: '',
+ baseSolutionId: '',
+ status: '2'
+ },
+ solutionList:[]
+ }
+ },
+ created () {
+ this.config({
+ module: '鎶曚繚鐢宠淇℃伅琛�',
+ api: '/business/insuranceApply',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ this.loadSelectList()
+ },
+ methods:{
+ loadSelectList() {
+ solutionAll({ dataType:0 }).then(res => {
+ this.solutionList = res
+ })
+ }
+ }
+}
+</script>
diff --git a/platform/.env b/platform/.env
index ea008f1..bf0ce72 100644
--- a/platform/.env
+++ b/platform/.env
@@ -5,8 +5,8 @@
# 椤圭洰涓婁笅鏂囪矾寰�
# preselect_admin/
-VUE_APP_CONTEXT_PATH = './'
+VUE_APP_CONTEXT_PATH = '/'
# 鎺ュ彛鍓嶇紑
# VUE_APP_API_PREFIX = '/yunyibao_interface/'
-VUE_APP_API_PREFIX = '/interface'
+VUE_APP_API_PREFIX = '/api'
diff --git a/platform/.env.development b/platform/.env.development
index efa685a..afef89d 100644
--- a/platform/.env.development
+++ b/platform/.env.development
@@ -1,19 +1,5 @@
# 寮�鍙戠幆澧冮厤缃�
NODE_ENV = 'development'
-<<<<<<< HEAD
-VUE_APP_API = 'http://192.168.0.134:10025/'
-=======
-VUE_APP_CONTEXT_PATH = '/'
-VUE_APP_API_PREFIX = '/api'
-
# 浠诲悍
-# VUE_APP_API = 'http://192.168.0.15:10017/'
-# 鐒︽澗
-#VUE_APP_API = 'http://192.168.0.36:10023'
-# 姹熻悕
-VUE_APP_API = 'http://192.168.0.154:10023'
-
-# #娴嬭瘯鏈嶅姟鍣�
-#VUE_APP_API = 'https://dmtest.ahapp.net/preselect_admin_interface'
->>>>>>> c6c95a49be6194989c124b8fd316fb5d434bd153
+VUE_APP_API = 'http://192.168.0.134:10025/'
diff --git a/platform/src/api/business/goods.js b/platform/src/api/business/goods.js
deleted file mode 100644
index 1ae02b3..0000000
--- a/platform/src/api/business/goods.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import request from '../../utils/request'
-
-// 鏌ヨ
-export function fetchList (data) {
- return request.post('/business/baseGoods/page', data, {
- trim: true
- })
-}
-
-// 瀵煎嚭Excel
-export function exportExcel (data) {
- return request.post('/business/baseGoods/exportExcel', data, {
- trim: true,
- download: true
- })
-}
-
-// 瀵煎嚭妯℃澘
-export function exportDoc (params) {
- return request.get('/business/baseGoods/export', params, {
- trim: true,
- download: true
- })
-}
-
-// 鍒涘缓
-export function create (data) {
- return request.post('/business/baseGoods/create', data)
-}
-
-// 淇敼
-export function updateById (data) {
- return request.post('/business/baseGoods/update', data)
-}
-
-// 鍒犻櫎
-export function deleteById (id) {
- return request.get(`/business/baseGoods/delete/${id}`)
-}
-
-// 鎵归噺鍒犻櫎
-export function deleteByIdInBatch (ids) {
- return request.get('/business/baseGoods/delete/batch', {
- params: {
- ids
- }
- })
-}
-
-// 淇敼鐘舵��
-export function updateStatus (data) {
- return request.post('/business/baseGoods/updateStatus', data)
-}
-/*export function updateStatusById (data) {
- return request.post('/business/baseGoods/updateStatusById', data)
-}*/
-
-// 鍒楄〃 - 鍟嗗搧閫夋嫨
-export function findListForbaseGoodsId (goodsId) {
- return request.get(`/business/category/findListForGoodsId?goodsId=${goodsId}`)
-}
-
-// 鏍规嵁ID鏌ヨ
-export function queryById (id) {
- return request.get(`/business/baseGoods/${id}`)
-}
\ No newline at end of file
diff --git a/platform/src/api/business/solutions.js b/platform/src/api/business/solutions.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/platform/src/api/business/solutions.js
diff --git a/platform/src/api/system/menu.js b/platform/src/api/system/menu.js
index ad94c4b..3ba843e 100644
--- a/platform/src/api/system/menu.js
+++ b/platform/src/api/system/menu.js
@@ -1,6 +1,5 @@
import request from '@/utils/request'
-<<<<<<< HEAD
// 鏌ヨ----骞冲彴鑿滃崟
export function fetchTree () {
return request.post('/system/menu/treeList/0')
@@ -9,11 +8,6 @@
// 鏌ヨ----浼佷笟鑿滃崟
export function fetchTree1 () {
return request.post('/system/menu/treeList/1')
-=======
-// 鏌ヨ
-export function fetchTree (data, type) {
- return request.post(`/system/menu/treeList/${type}`, data)
->>>>>>> c6c95a49be6194989c124b8fd316fb5d434bd153
}
// 鏂板缓
@@ -46,13 +40,8 @@
}
// 鏌ヨ鑿滃崟鏍�
-<<<<<<< HEAD
export function fetchMenuTree () {
return request.get('/system/menu/treeNodes?type=1')
-=======
-export function fetchMenuTree (params) {
- return request.get('/system/menu/treeNodes', { params })
->>>>>>> c6c95a49be6194989c124b8fd316fb5d434bd153
}
// 鎺掑簭
diff --git a/platform/src/components/business/OperaBaseDataWindow.vue b/platform/src/components/business/OperaBaseDataWindow.vue
deleted file mode 100644
index ff0a5d8..0000000
--- a/platform/src/components/business/OperaBaseDataWindow.vue
+++ /dev/null
@@ -1,246 +0,0 @@
-<template>
- <GlobalWindow
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- @confirm="confirm"
- >
- <el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="鍒涘缓浜虹紪鐮�" prop="creator">
- <el-input v-model="form.creator" placeholder="璇疯緭鍏ュ垱寤轰汉缂栫爜" v-trim/>
- </el-form-item>
- <el-form-item label="鍒涘缓鏃堕棿" prop="createDate">
- <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"></el-date-picker>
- </el-form-item>
- <el-form-item label="鏇存柊浜虹紪鐮�" prop="editor">
- <el-input v-model="form.editor" placeholder="璇疯緭鍏ユ洿鏂颁汉缂栫爜" v-trim/>
- </el-form-item>
- <el-form-item label="鏇存柊鏃堕棿" prop="editDate">
- <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ユ洿鏂版椂闂�"></el-date-picker>
- </el-form-item>
- <el-form-item label="鏄惁鍒犻櫎0鍚� 1鏄�" prop="isdeleted">
- <el-input v-model="form.isdeleted" placeholder="璇疯緭鍏ユ槸鍚﹀垹闄�0鍚� 1鏄�" v-trim/>
- </el-form-item>
- <el-form-item label="鏍囬" prop="title">
- <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" v-trim/>
- </el-form-item>
- <el-form-item label="鍟嗗搧鍚嶇О" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�" v-trim/>
- </el-form-item>
- <el-form-item label="浜笢sku" prop="sku">
- <el-input v-model="form.sku" placeholder="璇疯緭鍏ヤ含涓渟ku" v-trim/>
- </el-form-item>
- <el-form-item label="鍝佺墝" prop="brand">
- <el-input v-model="form.brand" placeholder="璇疯緭鍏ュ搧鐗�" v-trim/>
- </el-form-item>
- <el-form-item label="绫诲埆" prop="category">
- <el-input v-model="form.category" placeholder="璇疯緭鍏ョ被鍒�" v-trim/>
- </el-form-item>
- <el-form-item label="澶栭摼鍦板潃" prop="url">
- <el-input v-model="form.url" placeholder="璇疯緭鍏ュ閾惧湴鍧�" v-trim/>
- </el-form-item>
- <el-form-item label="鍒楄〃鍥�" prop="imgurl">
- <el-input v-model="form.imgurl" placeholder="璇疯緭鍏ュ垪琛ㄥ浘" v-trim/>
- </el-form-item>
- <el-form-item label="澶у浘1" prop="bgImg">
- <el-input v-model="form.bgImg" placeholder="璇疯緭鍏ュぇ鍥�1" v-trim/>
- </el-form-item>
- <el-form-item label="澶у浘2" prop="bgImg2">
- <el-input v-model="form.bgImg2" placeholder="璇疯緭鍏ュぇ鍥�2" v-trim/>
- </el-form-item>
- <el-form-item label="澶у浘3" prop="bgImg3">
- <el-input v-model="form.bgImg3" placeholder="璇疯緭鍏ュぇ鍥�3" v-trim/>
- </el-form-item>
- <el-form-item label="浠锋牸" prop="price">
- <el-input v-model="form.price" placeholder="璇疯緭鍏ヤ环鏍�" v-trim/>
- </el-form-item>
- <el-form-item label="閲囪喘浠锋牸" prop="saleprice">
- <el-input v-model="form.saleprice" placeholder="璇疯緭鍏ラ噰璐环鏍�" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��1" prop="attr1">
- <el-input v-model="form.attr1" placeholder="璇疯緭鍏ュ睘鎬�1" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��2" prop="attr2">
- <el-input v-model="form.attr2" placeholder="璇疯緭鍏ュ睘鎬�2" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��3" prop="attr3">
- <el-input v-model="form.attr3" placeholder="璇疯緭鍏ュ睘鎬�3" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��4" prop="attr4">
- <el-input v-model="form.attr4" placeholder="璇疯緭鍏ュ睘鎬�4" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��5" prop="attr5">
- <el-input v-model="form.attr5" placeholder="璇疯緭鍏ュ睘鎬�5" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��6" prop="attr6">
- <el-input v-model="form.attr6" placeholder="璇疯緭鍏ュ睘鎬�6" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��7" prop="attr7">
- <el-input v-model="form.attr7" placeholder="璇疯緭鍏ュ睘鎬�7" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��8" prop="attr8">
- <el-input v-model="form.attr8" placeholder="璇疯緭鍏ュ睘鎬�8" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��9" prop="attr9">
- <el-input v-model="form.attr9" placeholder="璇疯緭鍏ュ睘鎬�9" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��10" prop="attr10">
- <el-input v-model="form.attr10" placeholder="璇疯緭鍏ュ睘鎬�10" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��11" prop="attr11">
- <el-input v-model="form.attr11" placeholder="璇疯緭鍏ュ睘鎬�11" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��12" prop="attr12">
- <el-input v-model="form.attr12" placeholder="璇疯緭鍏ュ睘鎬�12" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��13" prop="attr13">
- <el-input v-model="form.attr13" placeholder="璇疯緭鍏ュ睘鎬�13" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��14" prop="attr14">
- <el-input v-model="form.attr14" placeholder="璇疯緭鍏ュ睘鎬�14" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��15" prop="attr15">
- <el-input v-model="form.attr15" placeholder="璇疯緭鍏ュ睘鎬�15" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��16" prop="attr16">
- <el-input v-model="form.attr16" placeholder="璇疯緭鍏ュ睘鎬�16" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��17" prop="attr17">
- <el-input v-model="form.attr17" placeholder="璇疯緭鍏ュ睘鎬�17" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��18" prop="attr18">
- <el-input v-model="form.attr18" placeholder="璇疯緭鍏ュ睘鎬�18" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��19" prop="attr19">
- <el-input v-model="form.attr19" placeholder="璇疯緭鍏ュ睘鎬�19" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��20" prop="attr20">
- <el-input v-model="form.attr20" placeholder="璇疯緭鍏ュ睘鎬�20" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��21" prop="attr21">
- <el-input v-model="form.attr21" placeholder="璇疯緭鍏ュ睘鎬�21" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��22" prop="attr22">
- <el-input v-model="form.attr22" placeholder="璇疯緭鍏ュ睘鎬�22" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��23" prop="attr23">
- <el-input v-model="form.attr23" placeholder="璇疯緭鍏ュ睘鎬�23" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��24" prop="attr24">
- <el-input v-model="form.attr24" placeholder="璇疯緭鍏ュ睘鎬�24" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��25" prop="attr25">
- <el-input v-model="form.attr25" placeholder="璇疯緭鍏ュ睘鎬�25" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��26" prop="attr26">
- <el-input v-model="form.attr26" placeholder="璇疯緭鍏ュ睘鎬�26" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��27" prop="attr27">
- <el-input v-model="form.attr27" placeholder="璇疯緭鍏ュ睘鎬�27" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��28" prop="attr28">
- <el-input v-model="form.attr28" placeholder="璇疯緭鍏ュ睘鎬�28" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��29" prop="attr29">
- <el-input v-model="form.attr29" placeholder="璇疯緭鍏ュ睘鎬�29" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��30" prop="attr30">
- <el-input v-model="form.attr30" placeholder="璇疯緭鍏ュ睘鎬�30" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��31" prop="attr31">
- <el-input v-model="form.attr31" placeholder="璇疯緭鍏ュ睘鎬�31" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��32" prop="attr32">
- <el-input v-model="form.attr32" placeholder="璇疯緭鍏ュ睘鎬�32" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��33" prop="attr33">
- <el-input v-model="form.attr33" placeholder="璇疯緭鍏ュ睘鎬�33" v-trim/>
- </el-form-item>
- <el-form-item label="灞炴��34" prop="attr34">
- <el-input v-model="form.attr34" placeholder="璇疯緭鍏ュ睘鎬�34" v-trim/>
- </el-form-item>
- <el-form-item label="澶勭悊鐘舵�� 0寰呭鐞� 1宸插鐞�" prop="status">
- <el-input v-model="form.status" placeholder="璇疯緭鍏ュ鐞嗙姸鎬� 0寰呭鐞� 1宸插鐞�" v-trim/>
- </el-form-item>
- </el-form>
- </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-export default {
- name: 'OperaBaseDataWindow',
- extends: BaseOpera,
- components: { GlobalWindow },
- data () {
- return {
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- creator: '',
- createDate: '',
- editor: '',
- editDate: '',
- isdeleted: '',
- title: '',
- name: '',
- sku: '',
- brand: '',
- category: '',
- url: '',
- imgurl: '',
- bgImg: '',
- bgImg2: '',
- bgImg3: '',
- price: '',
- saleprice: '',
- attr1: '',
- attr2: '',
- attr3: '',
- attr4: '',
- attr5: '',
- attr6: '',
- attr7: '',
- attr8: '',
- attr9: '',
- attr10: '',
- attr11: '',
- attr12: '',
- attr13: '',
- attr14: '',
- attr15: '',
- attr16: '',
- attr17: '',
- attr18: '',
- attr19: '',
- attr20: '',
- attr21: '',
- attr22: '',
- attr23: '',
- attr24: '',
- attr25: '',
- attr26: '',
- attr27: '',
- attr28: '',
- attr29: '',
- attr30: '',
- attr31: '',
- attr32: '',
- attr33: '',
- attr34: '',
- status: ''
- },
- // 楠岃瘉瑙勫垯
- rules: {
- }
- }
- },
- created () {
- this.config({
- api: '/business/baseData',
- 'field.id': 'id'
- })
- }
-}
-</script>
diff --git a/platform/src/components/business/OperaBrandWindow.vue b/platform/src/components/business/OperaBrandWindow.vue
deleted file mode 100644
index b5899ee..0000000
--- a/platform/src/components/business/OperaBrandWindow.vue
+++ /dev/null
@@ -1,100 +0,0 @@
-<template>
- <GlobalAlertWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" width="600px" @confirm="confirm">
- <el-form :model="form" ref="form" label-width="150px" label-suffix="锛�" :rules="rules">
- <el-form-item label="鍝佺墝鍚嶇О" prop="name">
- <el-input v-model="form.name" maxlength="20" placeholder="璇疯緭鍏ワ紝涓嶈秴杩�20涓瓧绗�" v-trim />
- </el-form-item>
- <el-form-item label="鍝佺墝鍥炬爣" prop="imgurl">
- <UploadAvatarImage
- :file="{ 'imgurlfull': form.imgfullurl, 'imgurl': form.imgurl }"
- :uploadData="uploadData"
- tipsLabel=""
- @uploadSuccess="uploadReverseSuccess"
- @uploadEnd="end"
- @uploadBegin="begin"
- />
- 鍙兘涓婁紶鍥剧墖鏍煎紡锛宲ng鏍煎紡锛屽缓璁昂瀵�200px*200px
- </el-form-item>
- <el-form-item label="鎺掑簭鐮�(鍗囧簭)" prop="sortnum">
- <el-input v-model="form.sortnum" type="number" placeholder="璇疯緭鍏ユ帓搴忕爜锛屽崌搴忓睍绀�" v-trim />
- </el-form-item>
- </el-form>
- </GlobalAlertWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import UploadAvatarImage from '../common/UploadAvatarImage.vue'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-export default {
- name: 'OperaBrandWindow',
- extends: BaseOpera,
- components: { GlobalAlertWindow, UploadAvatarImage },
- data() {
- return {
- action: process.env.VUE_APP_API_PREFIX + '/public/uploadLocal',
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- name: '',
- sortnum: '',
- imgurl: '',
- imgfullurl: '',
- type: 1
- },
- uploadData: {
- folder: 'brand_img',
- type: 'image'
- },
- // 楠岃瘉瑙勫垯
- rules: {
- name: [
- { required: true, message: '涓嶈兘涓虹┖', trigger: 'blur' }
- ]
- }
- }
- },
- created() {
- this.config({
- api: '/business/brand',
- 'field.id': 'id'
- })
- },
- methods: {
- open (title, target) {
- this.title = title
- this.visible = true
- // 鏂板缓
- if (target == null) {
- this.$nextTick(() => {
- this.$refs.form.resetFields()
- this.form.imgfullurl = ''
- this.form[this.configData['field.id']] = null
- })
- return
- }
- // 缂栬緫
- this.$nextTick(() => {
- for (const key in this.form) {
- this.form[key] = target[key]
- }
- })
- },
- begin() {
- this.isUploading=true
- },
- end() {
- this.isUploading=false
- },
- // 涓婁紶鍥剧墖
- uploadReverseSuccess(file) {
- this.form.imgurl = file.imgurl;
- this.form.imgfullurl = file.imgurlfull;
- },
- }
-}
-</script>
-
-<style lang="scss">
-</style>
-
\ No newline at end of file
diff --git a/platform/src/components/business/OperaCategoryWindow.vue b/platform/src/components/business/OperaCategoryWindow.vue
deleted file mode 100644
index e70b3a3..0000000
--- a/platform/src/components/business/OperaCategoryWindow.vue
+++ /dev/null
@@ -1,251 +0,0 @@
-<template>
- <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm" width="900px">
- <el-form :model="form" ref="form" label-width="120px" label-suffix="锛�" :rules="rules" v-loading="isUploading">
- <el-form-item label="绫诲埆鍚嶇О" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ョ被鍒悕绉帮紝涓嶈秴杩�6涓瓧" maxlength="6" v-trim />
- </el-form-item>
- <el-form-item label="鍥炬爣" prop="imgurl">
- <UploadAvatarImage :file="{ 'imgurlfull': form.imgfullurl, 'imgurl': form.imgurl }"
- :uploadData="{ folder: 'category_img' }" @uploadSuccess="uploadReverseSuccess" @uploadEnd="isUploading = false"
- @uploadBegin="isUploading = true" />
- 鍙兘涓婁紶鍥剧墖鏍煎紡锛宲ng鏍煎紡锛屽缓璁昂瀵�120*120px
- </el-form-item>
- <el-form-item label="鍔犱环绯绘暟" prop="priceRate">
- <!-- <el-input v-model="form.priceRate" placeholder="鍦ㄤ含涓滈噰璐环鍩虹涓婏紝骞冲彴鐨勫姞浠风郴鏁�" v-trim /> -->
- <el-input-number v-model="form.priceRate" controls-position="right" :min="0.1" :step="0.1"></el-input-number>
- </el-form-item>
- <el-form-item label="鎺掑簭鐮�(鍗囧簭)" prop="sortnum">
- <el-input v-model="form.sortnum" type="number" placeholder="璇疯緭鍏ユ帓搴忕爜锛屽崌搴忓睍绀�" v-trim />
- </el-form-item>
-
- </el-form>
- <div class="param-table" >
- <div class="title-contant">
- <div class="title">鍙傛暟灞炴�ч厤缃�</div>
- <div class="sub-title">閰嶇疆褰撳墠绫诲埆鐨勪骇鍝佸弬鏁板悕</div>
- </div>
- <el-table :data="form.baseCateParamList" stripe border >
- <el-table-column prop="" label="鍙傛暟鍚�" min-width="200px" align="center">
- <template slot-scope="{row}">
- <el-input v-model="row.name" placeholder="璇疯緭鍏ュ弬鏁板悕" v-trim />
- </template>
- </el-table-column>
- <el-table-column label="鎿嶄綔" width="100" align="center">
- <template slot-scope="{row, $index}">
- <el-button type="text" style="color: red"
- @click="form.baseCateParamList.splice($index, 1)">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <el-button style="color: #2E68EC; margin-top: 10px;" @click="addParam" icon="el-icon-plus">鏂板</el-button>
- </div>
- </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import UploadAvatarImage from '@/components/common/UploadAvatarImage.vue'
-import { create, updateById } from '@/api/business/category.js'
-export default {
- name: 'OperaCategoryWindow',
- extends: BaseOpera,
- components: { GlobalWindow, UploadAvatarImage },
- data() {
- return {
- action: process.env.VUE_APP_API_PREFIX + '/public/upload',
- isUploading: false,
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- name: '',
- imgurl: '',
- imgfullurl: '',
- priceRate: '1.2',
- sortnum: '',
-
- // attrFirst: '',
- // attrFirst1: '',
- baseCateParamList: [],
- // attrSecond: '',
- // attrSecond1: '',
- // attrSecondList: [],
-
- // parameter: '',
- paramList: []
-
- },
- // 楠岃瘉瑙勫垯
- rules: {
- name: [
- { required: true, message: '涓嶈兘涓虹┖', trigger: 'blur' }
- ]
- },
- dialogVisible: false
- }
- },
- created() {
- this.config({
- api: '/business/category',
- 'field.id': 'id'
- })
- },
- methods: {
- open(title, target) {
- this.title = title
- this.visible = true
- // 鏂板缓
- if (target == null) {
- this.$nextTick(() => {
- this.$refs.form.resetFields()
- this.form.imgfullurl = ''
- this.form.baseCateParamList = [{name:''}]
- this.form.paramList = [{name:''}]
- this.form[this.configData['field.id']] = null
- })
- return
- }
- // 缂栬緫
- this.$nextTick(() => {
- for (const key in this.form) {
- this.form[key] = target[key]
- }
- this.form.baseCateParamList = this.form.baseCateParamList || []
- })
- },
- addParam () {
- this.form.baseCateParamList.push({ name: '' })
- },
- changeInput (type, index) {
- if (type === 1) {
- if (!this.form.budgetList[index].minamount) return
- if (!/^[0-9]*[1-9][0-9]*$/.test(this.form.budgetList[index].minamount)) {
- this.$message.warning({
- type: 'warning',
- message: '棰勭畻鍙兘杈撳叆姝f暣鏁�'
- })
- this.form.budgetList[index].minamount = ''
- }
- } else {
- if (!this.form.budgetList[index].maxamount) return
- if (!/^[0-9]*[1-9][0-9]*$/.test(this.form.budgetList[index].maxamount)) {
- this.$message.warning({
- type: 'warning',
- message: '棰勭畻鍙兘杈撳叆姝f暣鏁�'
- })
- this.form.budgetList[index].maxamount = ''
- }
- }
- },
-
- confirm() {
- this.$refs.form.validate((valid) => {
- if (valid) {
- this.isWorking = true
- if (!this.form.id) {
- create(this.form)
- .then(() => {
- this.visible = false
- this.$tip.apiSuccess('鏂板缓鎴愬姛')
- this.$emit('success')
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking = false
- })
- } else {
- updateById(this.form)
- .then(() => {
- this.visible = false
- this.$tip.apiSuccess('缂栬緫鎴愬姛')
- this.$emit('success')
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking = false
- })
- }
- } else {
- return false;
- }
- });
- },
- close(index, type) {
- if (type === 1) {
- this.form.attrFirstList.splice(index, 1)
- } else if (type === 2) {
- this.form.attrSecondList.splice(index, 1)
- } else if (type === 3) {
- this.form.paramList.splice(index, 1)
- }
- },
- confirmVal(type) {
- if (type === 1) {
- if (!this.form.attrFirst1) return
- this.form.attrFirstList.push({ name: this.form.attrFirst1 })
- this.form.attrFirst1 = ''
- } else if (type === 2) {
- if (!this.form.attrSecond1) return
- this.form.attrSecondList.push({ name: this.form.attrSecond1 })
- this.form.attrSecond1 = ''
- } else if (type === 3) {
- if (!this.form.parameter) return
- this.form.paramList.push({ name: this.form.parameter })
- this.form.parameter = ''
- }
- },
- add() {
- this.form.budgetList.push({ minamount: '', maxamount: '' })
- },
- begin() {
- this.isUploading = true
- },
- end() {
- this.isUploading = false
- },
- // 涓婁紶鍥剧墖
- uploadReverseSuccess(file) {
- this.form.imgurl = file.imgurl;
- this.form.imgfullurl = file.imgurlfull;
- },
- dele(i) {
- if (this.form.budgetList.length === 1) return
- this.form.budgetList.splice(i, 1)
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-.param-table {
- //width: 70%;
- margin-top: 40px;
-
- .title-contant {
- display: flex;
- align-items: baseline;
- margin-bottom: 10px;
- .title {
- font-weight: 600;
- font-size: 20px;
- margin-right: 15px;
- }
- .sub-title {
- font-size: 14px;
- }
- }
-}
-::v-deep .el-form-item__content {
- .el-input {
- width: 300px;
- }
- .el-input-number {
- text-align: left;
- width: 300px;
- }
-}
-</style>
\ No newline at end of file
diff --git a/platform/src/components/business/OperaCompanyUserWindow.vue b/platform/src/components/business/OperaCompanyUserWindow.vue
deleted file mode 100644
index 45942e7..0000000
--- a/platform/src/components/business/OperaCompanyUserWindow.vue
+++ /dev/null
@@ -1,120 +0,0 @@
-<template>
- <GlobalAlertWindow
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- width="750px"
- @confirm="confirm"
- >
- <el-form :model="form" ref="form" label-width="125px" :rules="rules">
- <el-form-item label="浼佷笟鍏ㄧО" prop="name">
- <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>
- <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">
- <el-input v-model="form.managerUserName" :disabled="!!this.form.id" placeholder="璇疯緭鍏ョ櫥褰曡处鍙�" v-trim/>
- </el-form-item>
- <el-form-item label="绯荤粺浣跨敤鏈夋晥鏈�" prop="oepnValidDate">
- <el-date-picker v-model="form.oepnValidDate" value-format="yyyy-MM-dd" :disabled="!!this.form.id" placeholder="璇疯緭鍏ョ郴缁熶娇鐢ㄦ湁鏁堟湡"></el-date-picker>
- </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/> -->
- <el-select v-model="form.salesmanId" clearable placeholder="璇烽�夋嫨" filterable >
- <el-option v-for="item in sales" :label="item.realname" :key="item.id" :value="item.id"></el-option>
- </el-select>
- </el-form-item>
-
- <div class="more">
- <div class="more-title">鏇村璁剧疆</div>
- <el-form-item label="鑱旂郴浜�" prop="linkname">
- <el-input v-model="form.linkname" placeholder="璇疯緭鍏ヨ仈绯讳汉" v-trim/>
- </el-form-item>
- <el-form-item label="鑱旂郴浜虹數璇�" prop="linkephone">
- <el-input v-model="form.linkephone" placeholder="璇疯緭鍏ヨ仈绯讳汉鐢佃瘽" v-trim/>
- </el-form-item>
- </div>
-
-
-
- </el-form>
- </GlobalAlertWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import { findAllList } from '@/api/system/user'
-export default {
- name: 'OperaCompanyWindow',
- extends: BaseOpera,
- components: { GlobalAlertWindow },
- data () {
- return {
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- managerUserName: '',
- name: '',
- shortName: '',
- remark: '',
- managerId: '',
- linkname: '',
- linkephone: '',
- creditCode: '',
- userNum: 5,
- oepnValidDate: '',
- salesmanId: ''
- },
- sales: [],
- // 楠岃瘉瑙勫垯
- rules: {
- name: [
- { required: true, message: '璇疯緭鍏ュ鎴蜂紒涓氬叏绉�', tigger: 'blur'}
- ],
- managerUserName: [
- { required: true, message: '璇疯緭鍏ョ櫥褰曡处鍙�', tigger: 'blur'}
- ],
- openUserNum: [
- { pattern: /^[0-9]+$/, message: '鍙彲浠ヨ緭鍏ユ暟瀛�', trigger: 'change' }
- ]
- }
- }
- },
- created () {
- this.config({
- api: '/business/companyUser',
- 'field.id': 'id'
- })
- findAllList({ type: 0 })
- .then(res => {
- this.sales = res
- })
- }
-}
-</script>
-
-<style lang="scss" scoped>
-.more {
- margin-top: 40px;
- margin-bottom: 10px;
- .more-title {
- font-weight: 600;
- font-size: 18px;
- }
-}
-::v-deep .el-input {
- width: 300px;
- margin-right: 10px;
-}
-</style>
diff --git a/platform/src/components/business/OperaCompanyValidDateWindow.vue b/platform/src/components/business/OperaCompanyValidDateWindow.vue
deleted file mode 100644
index cd1fa6f..0000000
--- a/platform/src/components/business/OperaCompanyValidDateWindow.vue
+++ /dev/null
@@ -1,163 +0,0 @@
-<template>
- <GlobalAlertWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
- <div class="tips-style">璋冩暣鏈夋晥鏈熷悗锛屽鎴风殑鏈夋晥鏈熶細鍙戠敓鏀瑰彉锛岃璋ㄦ厧鎿嶄綔</div>
- <el-form :model="form" ref="form" label-width="100px" label-suffix="锛�" :rules="rules" inline>
- <div class="short-line">
- <el-form-item label="浼佷笟鍚嶇О" prop="name">
- <el-input v-model="form.name" disabled v-trim />
- </el-form-item>
- </div>
- <!-- <div class="item-line">
- <el-form-item label="瀹㈡埛绫诲瀷" prop="oepnType">
- <el-radio-group v-model="form.oepnType" @change="typeChange">
- <el-radio :label="1">姝e紡璐﹀彿</el-radio>
- <el-radio :label="0">璇曠敤璐﹀彿</el-radio>
- </el-radio-group>
- </el-form-item>
- </div> -->
-
- <div class="item-line">
- <el-form-item label="鏈夋晥鏈�" prop="oepnValidDate">
- <!-- <el-date-picker v-model="form.oepnValidDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd hh:mm:ss"
- placeholder="閫夋嫨鏃ユ湡"> -->
- <el-date-picker type="date" v-model="form.oepnValidDate" value-format="yyyy-MM-dd" placeholder="閫夋嫨鏈夋晥鏃ユ湡">
- </el-date-picker>
- 鏈夋晥鏈熷寘鍚�夋嫨鏃ユ湡
- </el-form-item>
- </div>
- <div class="short-line">
- <el-form-item label="涓绘挱鏁伴檺鍒�" prop="userNum">
- <el-input v-model="form.userNum" placeholder="璇疯緭鍏ヤ富鎾暟" v-trim />
- <span style="display:inline;font-size:10px;color:red">娉細涓�0涓嶉檺鍒朵汉鏁�</span>
- </el-form-item>
- </div>
- </el-form>
- <!-- <div slot="footer"></div> -->
- </GlobalAlertWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalAlertWindow from '@/components/common/GlobalAlertWindow'
-import { update } from '@/api/business/company'
-// import { create } from '@/api/business/companyChange'
-export default {
- name: 'OperaCompanyValidDateWindow',
- extends: BaseOpera,
- components: { GlobalAlertWindow },
- data() {
-
- return {
- isUploading: false,
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- name: '',
- oepnValidDate: '',
- userNum: 0
- },
- types: [],
- // 楠岃瘉瑙勫垯
- rules: {
- openUserNum: [
- { pattern: /^[0-9]+$/, message: '鍙彲浠ヨ緭鍏ユ暟瀛�', trigger: 'change' }
- ]
- }
- }
- },
- created() {
- this.config({
- api: '/business/company',
- 'field.id': 'id'
- })
- },
- methods: {
- open(title, target) {
- this.title = title
- this.visible = true
- // 缂栬緫
- this.$nextTick(() => {
- this.$refs.form.clearValidate()
- this.$refs.form.resetFields()
- for (const key in this.form) {
- this.form[key] = target[key]
- }
- })
- },
- typeChange() {
- let tempDate = new Date();
- tempDate.setDate(tempDate.getDate() + (this.form.oepnType ? 30 : 15))
- this.form.oepnValidDate = `${tempDate.getFullYear()}-${tempDate.getMonth() + 1}-${tempDate.getDate()} 00:00:00`
- },
- confirm() {
- this.$refs.form.validate((valid) => {
- if (!valid) {
- return
- }
- this.isWorking = true
- update(this.form)
- .then(() => {
- this.visible = false
- this.$refs.form.resetFields()
- this.$tip.apiSuccess('淇敼鏈夋晥鏈熸垚鍔�')
- this.$emit('success')
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking = false
- })
- })
- }
- },
-}
-</script>
-
-<style lang="scss" scoped>
-.tips-style {
- background-color: #f7f7f7;
- height: 30px;
- line-height: 30px;
-
- a {
- text-decoration: none
- }
-
- padding-left: 10px;
- margin-bottom: 20px;
-}
-
-.item-line {
- ::v-deep .el-form-item__content {
- width: 480px;
- }
-}
-
-.short-line {
- ::v-deep .el-form-item__content {
- width: 286px;
- }
-}
-
-.pic-line {
- ::v-deep .el-form-item__content {
- width: 500px;
- }
-}
-
-.address {
- display: flex;
-
- .line {
- width: 10px;
- }
-}
-
-.sub-title {
- font-size: 20px;
- font-weight: 600;
- margin-top: 10px;
- margin-bottom: 10px;
-}
-</style>
diff --git a/platform/src/components/business/OperaCompanyWindow.vue b/platform/src/components/business/OperaCompanyWindow.vue
deleted file mode 100644
index 0739250..0000000
--- a/platform/src/components/business/OperaCompanyWindow.vue
+++ /dev/null
@@ -1,150 +0,0 @@
-<template>
- <GlobalAlertWindow
- :title="title"
- :visible.sync="visible"
- :confirm-working="isWorking"
- width="750px"
- @confirm="confirm"
- >
- <el-form :model="form" ref="form" label-width="125px" :rules="rules">
- <el-form-item label="浼佷笟鍏ㄧО" prop="name">
- <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>
- <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">
- <el-input v-model="form.managerUserName" :disabled="!!this.form.id" placeholder="璇疯緭鍏ョ櫥褰曡处鍙�" v-trim/>
- </el-form-item>
- <el-form-item label="绯荤粺浣跨敤鏈夋晥鏈�" prop="oepnValidDate">
- <el-date-picker v-model="form.oepnValidDate" value-format="yyyy-MM-dd" :disabled="!!this.form.id" placeholder="璇疯緭鍏ョ郴缁熶娇鐢ㄦ湁鏁堟湡"></el-date-picker>
- </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/> -->
- <el-select v-model="form.salesmanId" clearable placeholder="璇烽�夋嫨" filterable >
- <el-option v-for="item in sales" :label="item.realname" :key="item.id" :value="item.id"></el-option>
- </el-select>
- </el-form-item>
-
- <div class="more">
- <div class="more-title">鏇村璁剧疆</div>
- <el-form-item label="鑱旂郴浜�" prop="linkname">
- <el-input v-model="form.linkname" placeholder="璇疯緭鍏ヨ仈绯讳汉" v-trim/>
- </el-form-item>
- <el-form-item label="鑱旂郴浜虹數璇�" prop="linkephone">
- <el-input v-model="form.linkephone" placeholder="璇疯緭鍏ヨ仈绯讳汉鐢佃瘽" v-trim/>
- </el-form-item>
- </div>
-
-
-
- </el-form>
- </GlobalAlertWindow>
-</template>
-
-<script>
-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,
- components: { GlobalAlertWindow },
- data () {
- return {
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- managerUserName: '',
- name: '',
- shortName: '',
- remark: '',
- managerId: '',
- linkname: '',
- linkephone: '',
- creditCode: '',
- userNum: '5',
- oepnValidDate: '',
- salesmanId: ''
- },
- sales: [],
- // 楠岃瘉瑙勫垯
- rules: {
- name: [
- { required: true, message: '璇疯緭鍏ュ鎴蜂紒涓氬叏绉�', tigger: 'blur'}
- ],
- managerUserName: [
- { required: true, validator: loginNameRule, message: '璇疯緭鍏ョ櫥褰曡处鍙�', tigger: 'blur'}
- ],
- creditCode: [
- { validator: creditCode, trigger: 'blur' }
- ],
- openUserNum: [
- { pattern: /^[0-9]+$/, message: '鍙彲浠ヨ緭鍏ユ暟瀛�', trigger: 'change' }
- ]
- }
- }
- },
- created () {
- this.config({
- api: '/business/company',
- 'field.id': 'id'
- })
- findAllList({ type: 0 })
- .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 {
- width: 300px;
- margin-right: 10px;
-}
-</style>
diff --git a/platform/src/components/business/OperaDispatchUnitWindow.vue b/platform/src/components/business/OperaDispatchUnitWindow.vue
index a9d80df..e786e09 100644
--- a/platform/src/components/business/OperaDispatchUnitWindow.vue
+++ b/platform/src/components/business/OperaDispatchUnitWindow.vue
@@ -1,6 +1,7 @@
<template>
<GlobalWindow
:title="title"
+ width="100%"
:visible.sync="visible"
:confirm-working="isWorking"
@confirm="confirm"
diff --git a/platform/src/components/business/OperaGoodsWindow.vue b/platform/src/components/business/OperaGoodsWindow.vue
deleted file mode 100644
index b4d0072..0000000
--- a/platform/src/components/business/OperaGoodsWindow.vue
+++ /dev/null
@@ -1,173 +0,0 @@
-<template>
- <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; 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" 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" filterable placeholder="璇烽�夋嫨锛屽崟閫�" @change="categorySelect">
- <el-option v-for="item in categoryList()" :key="item.id" :label="item.name" :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鎸囧浠凤紙鍏冿級" prop="zdPrice">
- <el-input v-model="form.zdPrice" @input="priceCHANEG(form.zdPrice, 1)" type="number" placeholder="寤鸿褰曞叆鏁存暟锛屽崟浣嶅厓"
- v-trim />
- </el-form-item>
- <el-form-item label="鍏ユ墜浠凤紙鍏冿級" prop="price">
- <el-input v-model="form.price" @input="priceCHANEG(form.price, 2)" type="number" placeholder="寤鸿褰曞叆鏁存暟锛屽崟浣嶅厓"
- v-trim />
- </el-form-item>
- <el-form-item label="鍟嗗搧涓诲浘">
- <UploadAvatarImage :file="{ 'imgurlfull': form.imgfullurl, 'imgurl': form.imgurl }" :uploadData="uploadData"
- tipsLabel="" @uploadSuccess="uploadReverseSuccess" @uploadEnd="isUploading = false"
- @uploadBegin="isUploading = true" />
- 鍙兘涓婁紶鍥剧墖鏍煎紡锛宲ng鏍煎紡锛屽缓璁昂瀵�140px*140px
- </el-form-item>
- <el-form-item label="鍟嗗搧鍥剧墖">
- <UploadImage :fileList="form.multifileList" :uploadData="uploadData" @beginUpload="isUploading = true" @endUpload="isUploading = false" />
- 鍙兘涓婁紶鍥剧墖鏍煎紡锛宲ng鏍煎紡锛屽缓璁昂瀵�600*600px
- </el-form-item>
- <template v-if="form.baseGoodsParamList && form.baseGoodsParamList.length > 0">
- <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 />
- </el-form-item>
- </template>
- </el-form>
- </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import UploadAvatarImage from '@/components/common/UploadAvatarImage.vue'
-import UploadImage from '@/components/common/UploadImage.vue'
-import { baseCategory, brand } from '@/api/system/common.js'
-import { companyCreate, companyUpdateById } from '@/api/business/goods.js'
-export default {
- name: 'OperaGoodsWindow',
- extends: BaseOpera,
- components: { GlobalWindow, UploadAvatarImage, UploadImage },
- data() {
- return {
- action: process.env.VUE_APP_API_PREFIX + '/public/upload',
- name1: '',
- name2: '',
- // 琛ㄥ崟鏁版嵁
- isUploading: false,
- form: {
- id: null,
- name: '',
- categoryId: '',
- brandId: '',
- zdPrice: '',
- price: '',
- imgurl: '',
- imgfullurl: '',
- multifileList: [],
- baseGoodsParamList: [],
- },
- uploadData: {
- folder: 'goods_img'
- },
- // 楠岃瘉瑙勫垯
- rules: {
- name: [
- { required: true, message: '涓嶈兘涓虹┖', trigger: 'blur' }
- ],
- categoryId: [
- { required: true, message: '璇烽�夋嫨', trigger: 'change' }
- ],
- brandId: [
- { required: true, message: '璇烽�夋嫨', trigger: 'change' }
- ],
- zdPrice: [
- { required: true, message: '涓嶈兘涓虹┖', trigger: 'blur' }
- ],
- price: [
- { required: true, message: '涓嶈兘涓虹┖', trigger: 'blur' }
- ]
- },
- options: []
- }
- },
- inject: ['categoryList', 'brandList'],
- created() {
- this.config({
- api: '/business/goods',
- 'field.id': 'id'
- })
- // this.getbrand()
- // this.getcategory()
- },
- methods: {
- open(title, target) {
- this.title = title
- this.visible = true
- // 鏂板缓
- if (target == null) {
- this.$nextTick(() => {
- this.$refs.form.resetFields()
- this.form.imgurl = ''
- this.form.imgfullurl = ''
- this.form.multifileList = []
- this.form.baseGoodsParamList = []
- 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
- })
- })
- },
- priceCHANEG(val, type) {
- if (!/^[1-9]+[0-9]*$/.test(val)) {
- this.$message.warning('鍙兘杈撳叆姝f暣鏁�')
- if (type === 1) {
- this.form.zdPrice = ''
- } else {
- this.form.price = ''
- }
- }
- },
- categorySelect(v) {
- this.categoryList().forEach(item => {
- if (item.id === v) {
- this.form.baseGoodsParamList = JSON.parse(JSON.stringify(item.baseCateParamList))
- this.form.baseGoodsParamList.forEach(item => {
- item.pramaId = item.id
- })
- }
- })
- },
- uploadReverseSuccess(file) {
- this.form.imgurl = file.imgurl;
- this.form.imgfullurl = file.imgurlfull;
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
-::v-deep .el-form-item__content {
- .el-input {
- width: 400px;
- }
-}
-</style>
diff --git a/platform/src/components/business/dispatchUnitDetails.vue b/platform/src/components/business/dispatchUnitDetails.vue
index 3913223..a155634 100644
--- a/platform/src/components/business/dispatchUnitDetails.vue
+++ b/platform/src/components/business/dispatchUnitDetails.vue
@@ -1,6 +1,7 @@
<template>
<GlobalWindow
:title="title"
+ width="100%"
:visible.sync="visible"
:confirm-working="isWorking"
@confirm="confirm"
diff --git a/platform/src/components/business/selectProduct.vue b/platform/src/components/business/selectProduct.vue
deleted file mode 100644
index d3702aa..0000000
--- a/platform/src/components/business/selectProduct.vue
+++ /dev/null
@@ -1,119 +0,0 @@
-<template>
- <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
- <el-form :model="form" ref="form" :rules="rules">
- <el-form-item label="鍟嗗搧绫诲埆" prop="categoryId">
- <el-select v-model="form.categoryId" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in categoryList"
- :key="item.id"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鍟嗗搧鑼冨洿" prop="type">
- <el-radio-group v-model="form.type">
- <el-radio :label="0">鍏ㄩ儴</el-radio>
- <el-radio :label="1">閮ㄥ垎</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="鍔犱环绯绘暟" prop="rate">
- <el-input v-model="form.rate" placeholder="骞冲彴閲囪喘浠�*鍔犱环绯绘暟锛屼綔涓哄弬鑰冨嚭鎵嬩环锛屽缓璁緭鍏ュぇ浜�1鐨勬暟瀛�" v-trim />
- </el-form-item>
- </el-form>
- <!-- 閫夋嫨骞冲彴鍟嗗搧 -->
- <selectProductItem ref="selectProductItem" @result="result" />
- </GlobalWindow>
- </template>
-
- <script>
- import BaseOpera from '@/components/base/BaseOpera'
- import GlobalWindow from '@/components/common/GlobalWindow'
- import selectProductItem from '@/components/business/selectProductItem'
- import { baseCategoryList } from '@/api/business/category.js'
- import { createPlat } from '@/api/business/goods'
-
- export default {
- name: 'OperaBrandWindow',
- extends: BaseOpera,
- components: { GlobalWindow, selectProductItem },
- data() {
- return {
- categoryList: [],
- // 琛ㄥ崟鏁版嵁
- form: {
- categoryId: '',
- type: 0,
- rate: ''
- },
- // 楠岃瘉瑙勫垯
- rules: {
- categoryId: [
- { required: true, message: '鍟嗗搧绫诲埆涓嶈兘涓虹┖', trigger: 'blur' }
- ],
- type: [
- { required: true, message: '鍟嗗搧鑼冨洿涓嶈兘涓虹┖', trigger: 'blur' }
- ],
- rate: [
- { required: true, message: '鍔犱环绯绘暟涓嶈兘涓虹┖', trigger: 'blur' }
- ]
- }
- }
- },
- created() {
- this.config({
- api: '/business/goods',
- 'field.id': 'id'
- })
- },
- methods: {
- result() {
- // this.$emit('success')
- this.$emit('result')
- this.visible = false
- },
- confirm() {
- this.$refs.form.validate((valid) => {
- if (!valid) return
- // 鏂板缓
- if (this.form.type == 0) {
- this.isWorking = true
- createPlat({
- categoryId: this.form.categoryId,
- rate: this.form.rate,
- type: this.form.type
- }).then(res => {
- this.visible = false
- this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
- // this.$emit('success')
- this.$emit('result')
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking = false
- })
- } else {
- this.$refs.selectProductItem.open('閫夋嫨骞冲彴鍟嗗搧', this.form)
- }
- })
- },
- /**
- * 鎵撳紑绐楀彛
- * @title 绐楀彛鏍囬
- * @target 缂栬緫鐨勫璞�
- */
- open (title, target) {
- this.title = title
- this.visible = true
- // 鑾峰彇鍒嗙被鍒楄〃
- baseCategoryList({ type: 1 })
- .then(res => {
- this.categoryList = res
- })
- }
- }
- }
- </script>
-
\ No newline at end of file
diff --git a/platform/src/components/business/selectProductItem.vue b/platform/src/components/business/selectProductItem.vue
deleted file mode 100644
index 50edba6..0000000
--- a/platform/src/components/business/selectProductItem.vue
+++ /dev/null
@@ -1,183 +0,0 @@
-<template>
- <GlobalWindow :title="title" width="70%" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
- <div class="head">
- <el-form :inline="true" :model="form" class="demo-form-inline">
- <el-form-item label="鍟嗗搧鍚嶇О" prop="name">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ュ晢鍝佸悕绉�"></el-input>
- </el-form-item>
- <el-form-item label="绫诲埆" prop="categoryId">
- <el-select v-model="form.categoryId" disabled placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in categoryList"
- :key="item.id"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="getList">鏌ヨ</el-button>
- </el-form-item>
- </el-form>
- </div>
- <div class="tab">
- <el-table
- :data="tableData"
- stripe
- border
- @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="id" label="鍟嗗搧ID" min-width="100px"></el-table-column>
- <el-table-column prop="name" label="鍟嗗搧鍚嶇О/鍨嬪彿" show-overflow-tooltip min-width="200px">
- <template slot-scope="{row}">
- <div style="display: flex; align-items: center;">
- <div style="width: 70px; height: 70px; flex-shrink: 0;">
- <el-image
- v-if="row.imgurl"
- style="width: 70px; height: 70px"
- :src="row.fullImgUrl"
- fit="cover"></el-image>
- </div>
- {{ row.name }}
- </div>
- </template>
- </el-table-column>
- <el-table-column prop="brandName" label="鍝佺墝" show-overflow-tooltip min-width="100px"></el-table-column>
- <el-table-column prop="categoryName" label="绫诲埆" show-overflow-tooltip min-width="100px"></el-table-column>
- <el-table-column prop="zdPrice" label="鎸囧浠凤紙鍏冿級" show-overflow-tooltip min-width="100px"></el-table-column>
- <el-table-column prop="price" label="閲囪喘浠凤紙鍏冿級" show-overflow-tooltip min-width="100px"></el-table-column>
- <el-table-column label="鍏ユ墜浠凤紙鍏冿級" show-overflow-tooltip min-width="100px">
- <template slot-scope="{row}">
- <el-input v-model="row.purchasePrice" placeholder="璇疯緭鍏�"></el-input>
- </template>
- </el-table-column>
- </el-table>
- <el-pagination
- @size-change="handleSizeChange"
- @current-change="handleCurrentChange"
- :current-page="page"
- :page-sizes="[10, 20, 30]"
- :page-size="pageSize"
- layout="total, sizes, prev, pager, next, jumper"
- :total="total">
- </el-pagination>
- </div>
- </GlobalWindow>
-</template>
-
-<script>
-import BaseOpera from '@/components/base/BaseOpera'
-import GlobalWindow from '@/components/common/GlobalWindow'
-import { baseCategoryList } from '@/api/business/category.js'
-import { pageT } from '@/api/business/goods'
-import { createPlat } from '@/api/business/goods'
-
-export default {
- name: 'OperaBrandWindow',
- extends: BaseOpera,
- components: { GlobalWindow },
- data() {
- return {
- // 琛ㄥ崟鏁版嵁
- form: {
- categoryId: '',
- type: 0,
- rate: '',
- name: '',
- goodsParamList: []
- },
- pageSize: 10,
- page: 1,
- total: 0,
- tableData: [],
- categoryList: []
- }
- },
- created() {
- this.config({
- api: '/business/anchor',
- 'field.id': 'id'
- })
- },
- methods: {
- getList() {
- pageT({
- capacity: this.pageSize,
- model: {
- categoryId: this.form.categoryId,
- name: this.form.name
- },
- page: this.page
- }).then(res => {
- res.records.forEach(item => {
- item.purchasePrice = item.price * this.form.rate
- })
- this.tableData = res.records
- this.total = res.total
- })
- },
- handleCurrentChange(e) {
- this.page = e
- this.getList()
- },
- handleSizeChange(e) {
- this.pageSize = e
- this.getList()
- },
- handleSelectionChange(e) {
- let arr = []
- e.forEach(item => {
- arr.push({ goodsId: item.id, price: item.purchasePrice })
- })
- this.form.goodsParamList = arr
- console.log(arr)
- },
- confirm() {
- // 璋冪敤鏂板缓鎺ュ彛
- this.isWorking = true
- createPlat({
- categoryId: this.form.categoryId,
- goodsParamList: this.form.goodsParamList,
- rate: this.form.rate,
- type: this.form.type
- }).then(res => {
- this.visible = false
- this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
- // this.$emit('success')
- this.$emit('result')
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- .finally(() => {
- this.isWorking = false
- })
- },
- /**
- * 鎵撳紑绐楀彛
- * @title 绐楀彛鏍囬
- * @target 缂栬緫鐨勫璞�
- */
- open(title, target) {
- this.title = title
- this.visible = true
- this.form.categoryId = target.categoryId
- this.form.rate = Number(target.rate)
- this.form.type = target.type
- // 鑾峰彇鍒嗙被鍒楄〃
- baseCategoryList({})
- .then(res => {
- this.categoryList = res
- })
- this.getList()
- }
- }
-}
-</script>
-
-<style lang="scss" scoped>
- .head {
- width: 100%;
-
- }
-</style>
\ No newline at end of file
diff --git a/platform/src/views/business/anchor.vue b/platform/src/views/business/anchor.vue
deleted file mode 100644
index bddb751..0000000
--- a/platform/src/views/business/anchor.vue
+++ /dev/null
@@ -1,108 +0,0 @@
-<template>
- <TableLayout :permissions="['business:companyUser:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="浼佷笟鍚嶇О" prop="companyName">
- <el-input v-model="searchForm.companyName" 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="keyWords">
- <el-input v-model="searchForm.keyWords" placeholder="璇疯緭鍏ョ櫥褰曡处鍙�/濮撳悕" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-select v-model="searchForm.status" clearable placeholder="璇烽�夋嫨" @change="search">
- <el-option label="鍚敤" :value="0"></el-option>
- <el-option label="绂佺敤" :value="1"></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
- @selection-change="handleSelectionChange">
- <!-- <el-table-column type="selection" width="55" align="center"></el-table-column> -->
- <el-table-column prop="companyName" label="浼佷笟鍚嶇О" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="username" label="鐧诲綍璐﹀彿" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="realname" label="濮撳悕" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="mobile" label="鎵嬫満鍙�" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="status" label="鐘舵��" min-width="100px" align="center">
- <template slot-scope="{row}">
- <!-- 0鍚敤 1绂佺敤 -->
- <el-switch :disabled="!containPermissions(['business:companyUser:update'])" v-model="row.status"
- :inactive-value="1" :active-value="0" @change="changeStatus(row)">
- </el-switch>
- </template>
-
- </el-table-column>
- <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px" align="center"></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'
-import { updateById } from '@/api/system/user'
-export default {
- name: 'Company',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data() {
- return {
- oepnValidDate: [],
- // 鎼滅储
- searchForm: {
- companyName: '',
- keyWords: '',
- status: '',
- type: 2
- }
- }
- },
- created() {
- this.config({
- module: '绯荤粺-浼佷笟淇℃伅琛�',
- api: '/business/companyUser',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- selectOepnValidDate(v) {
- [this.searchForm.oepnValidDateStart, this.searchForm.oepnValidDateEnd] = v
- },
- reset() {
- // this.reset()
- this.$refs.searchForm.resetFields()
- this.searchForm.oepnValidDateStart = ''
- this.searchForm.oepnValidDateEnd = ''
- this.oepnValidDate = []
- this.search()
- },
- changeStatus(row) {
- updateById(row)
- .then(() => {
- this.$tip.apiSuccess('鏇存柊鎴愬姛')
- })
- .catch(err => {
- this.$tip.apiFailed(err)
- })
- .finally(() => {
- this.handlePageChange()
- })
- }
- },
-}
-</script>
diff --git a/platform/src/views/business/baseData.vue b/platform/src/views/business/baseData.vue
deleted file mode 100644
index 9d9d3e8..0000000
--- a/platform/src/views/business/baseData.vue
+++ /dev/null
@@ -1,152 +0,0 @@
-<template>
- <TableLayout :permissions="['business:basedata:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="80px" 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="浜笢sku" prop="sku">
- <el-input v-model="searchForm.sku" placeholder="璇疯緭鍏ヤ含涓渟ku" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鍝佺墝" prop="brand">
- <el-input v-model="searchForm.brand" placeholder="璇疯緭鍏ュ搧鐗�" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="绫诲埆" prop="category">
- <el-input v-model="searchForm.category" placeholder="璇疯緭鍏ョ被鍒�" @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-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" @keypress.enter.native="search"></el-input> -->
- </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>
- <ul class="toolbar" v-permissions="['business:basedata:create', 'business:basedata:delete']">
- <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
- v-permissions="['business:basedata:delete']">鎵归噺鍒犻櫎</el-button></li>
- </ul>
- <el-table v-loading="isWorking.search" :data="tableData.list" border stripe @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="id" label="涓婚敭" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="100px"></el-table-column>
- <el-table-column prop="name" label="鍟嗗搧涓诲浘" min-width="80px">
- <template slot-scope="{row}">
- <div style="display: flex; align-items: center;">
- <div style="width: 70px; height: 70px; flex-shrink: 0;">
- <el-image v-if="row.imgurl" style="width: 70px; height: 70px" :src="row.imgurl"
- :preview-src-list="[row.imgurl]" fit="cover"></el-image>
- </div>
- </div>
- </template>
- </el-table-column>
- <el-table-column prop="name" label="鍟嗗搧鍚嶇О" min-width="150px">
- <template slot-scope="{row}">
- <a :href="`${row.url}`" target="_blank">{{ row.name }}</a>
- </template>
- </el-table-column>
- <!-- <el-table-column prop="title" label="鏍囬" min-width="100px"></el-table-column>-->
- <el-table-column prop="sku" label="浜笢sku" min-width="100px"></el-table-column>
- <el-table-column prop="brand" label="鍝佺墝" min-width="120px"></el-table-column>
- <el-table-column prop="category" label="绫诲埆" min-width="100px"></el-table-column>
- <el-table-column prop="price" label="浠锋牸锛堝厓锛�" min-width="100px"></el-table-column>
- <el-table-column prop="saleprice" label="閲囪喘浠锋牸锛堝厓锛�" min-width="100px"></el-table-column>
- <el-table-column prop="haveStock" label="搴撳瓨鎯呭喌" min-width="100px"></el-table-column>
- <el-table-column prop="bgImgs" label="澶у浘" min-width="80px">
- <template slot-scope="{row}">
- <el-button type="text" @click="showImage(row.bgImgs)">鏌ョ湅澶у浘</el-button>
- <!-- <div style="display: flex; align-items: center;">
- <div style="width: 70px; height: 70px; flex-shrink: 0;">
- <el-image v-if="row.bgImgs" style="width: 70px; height: 70px" :src="row.bgImgs"
- :preview-src-list="row.bgImgs" fit="cover"></el-image>
- </div>
- </div> -->
- </template>
- </el-table-column>
- <el-table-column prop="status" label="澶勭悊鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- {{ row.status == 1 ? "宸插鐞�" : "鏈鐞�" }}
- </template>
- </el-table-column>
- <el-table-column v-if="containPermissions(['business:basedata:update', 'business:basedata:delete'])" label="鎿嶄綔"
- min-width="80" fixed="right">
- <template slot-scope="{row}">
- <!--
- <el-button type="text" @click="$refs.operaBaseDataWindow.open('缂栬緫鍟嗗搧婧愭暟鎹俊鎭〃', row)" icon="el-icon-edit" v-permissions="['business:basedata:update']">缂栬緫</el-button>
--->
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
- v-permissions="['business:basedata:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaBaseDataWindow ref="operaBaseDataWindow" @success="handlePageChange" />
- <el-image-viewer
- v-if="showViewer"
- :on-close="closeViewer"
- :initialIndex="0"
- :url-list="srcList"
- :z-index="3000"
- />
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaBaseDataWindow from '@/components/business/OperaBaseDataWindow'
-import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
-export default {
- name: 'BaseData',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaBaseDataWindow, ElImageViewer },
- data() {
- return {
- showViewer: false,
- srcList: [],
- // 鎼滅储
- searchForm: {
- name: '',
- sku: '',
- brand: '',
- category: '',
- status: null
- },
- statusList: [
- { name: '鏈鐞�', id: 0 },
- { name: '宸插鐞�', id: 1 }
- ]
- }
- },
- created() {
- this.config({
- module: '鍟嗗搧婧愭暟鎹俊鎭〃',
- api: '/business/baseData',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- showImage(imgs) {
- this.srcList = []
- this.srcList = imgs
- this.showViewer = true
- },
- closeViewer() {
- this.showViewer = false
- }
-
- },
-}
-</script>
diff --git a/platform/src/views/business/brand.vue b/platform/src/views/business/brand.vue
deleted file mode 100644
index 5392956..0000000
--- a/platform/src/views/business/brand.vue
+++ /dev/null
@@ -1,93 +0,0 @@
-<template>
- <TableLayout :permissions="['business:brand: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>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:brand:exportExcel']" @click="exportExcel">瀵煎嚭</el-button> -->
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:brand:create']">
- <li><el-button type="primary" @click="$refs.operaBrandWindow.open('鏂板缓鍝佺墝')" icon="el-icon-plus"
- v-permissions="['business:brand:create']">鏂板缓</el-button></li>
- </ul>
- <el-table v-loading="isWorking.search" :data="tableData.list" stripe border :header-cell-style="rowStyle"
- :cell-style="rowStyle">
- <el-table-column prop="name" label="鍝佺墝鍚嶇О" min-width="100px"></el-table-column>
- <el-table-column prop="imgfullurl" label="鍝佺墝鍥炬爣" min-width="100px">
- <template slot-scope="{row}">
- <el-image v-if="row.imgfullurl" style="width: 70px; height: 70px" :src="row.imgfullurl"
- :preview-src-list="[row.imgfullurl]" fit="cover"></el-image>
- </template>
- </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 v-if="containPermissions(['business:brand:update', 'business:brand:delete'])" label="鎿嶄綔"
- min-width="120" fixed="right">
- <template slot-scope="{row}">
- <el-button type="text" @click="edit(row)" icon="el-icon-edit"
- v-permissions="['business:brand:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
- v-permissions="['business:brand:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaBrandWindow ref="operaBrandWindow" @success="handlePageChange" />
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaBrandWindow from '@/components/business/OperaBrandWindow'
-export default {
- name: 'Brand',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaBrandWindow },
- data() {
- return {
- // 鎼滅储
- searchForm: {
- name: '',
- type: 1
- }
- }
- },
- created() {
- this.config({
- module: '鍝佺墝',
- api: '/business/brand',
- 'field.id': 'id',
- 'field.main': 'name'
- })
- this.search()
- },
- methods: {
- rowStyle() {
- return "text-align:center";
- },
- edit(row) {
- let obj = {
- id: row.id,
- name: row.name,
- sortnum: row.sortnum,
- imgurl: row.imgurl,
- imgfullurl: row.imgfullurl
- }
- this.$refs.operaBrandWindow.open('缂栬緫鍝佺墝', obj)
- }
- }
-}
-</script>
-
\ No newline at end of file
diff --git a/platform/src/views/business/category.vue b/platform/src/views/business/category.vue
deleted file mode 100644
index f937c4c..0000000
--- a/platform/src/views/business/category.vue
+++ /dev/null
@@ -1,120 +0,0 @@
-<template>
- <TableLayout :permissions="['business:category: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>
- <section>
- <el-button type="primary" @click="search">鎼滅储</el-button>
- <!-- <el-button type="primary" :loading="isWorking.export" v-permissions="['business:category:exportExcel']" @click="exportExcel">瀵煎嚭</el-button> -->
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:category:create']">
- <li><el-button type="primary" @click="$refs.operaCategoryWindow.open('鏂板缓绫诲埆')" icon="el-icon-plus"
- v-permissions="['business:category:create']">鏂板缓</el-button></li>
- </ul>
- <el-table v-loading="isWorking.search" :data="tableData.list" stripe border :header-cell-style="rowStyle"
- :cell-style="rowStyle">
- <el-table-column prop="imgurl" label="鍥炬爣" min-width="100px">
- <template slot-scope="{row}">
- <el-image v-if="row.imgurl" style="width: 70px; height: 70px" :src="row.imgfullurl"
- :preview-src-list="[row.imgfullurl]" fit="cover"></el-image>
- </template>
- </el-table-column>
- <el-table-column prop="name" label="绫诲埆鍚嶇О" min-width="100px"></el-table-column>
- <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 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>
- </template>
- </el-table-column>
- <el-table-column v-if="containPermissions(['business:category:update', 'business:category:delete'])" label="鎿嶄綔"
- min-width="120" fixed="right">
- <template slot-scope="{row}">
- <el-button type="text" @click="edit(row.id)" v-permissions="['business:category:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" v-permissions="['business:category:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaCategoryWindow ref="operaCategoryWindow" @success="handlePageChange" />
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaCategoryWindow from '@/components/business/OperaCategoryWindow'
-import { queryById, updateDisableById } from '@/api/business/category.js'
-export default {
- name: 'Category',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaCategoryWindow },
- data() {
- return {
- // 鎼滅储
- searchForm: {
- name: ''
- }
- }
- },
- created() {
- this.config({
- module: '绫诲埆',
- api: '/business/category',
- 'field.id': 'id',
- 'field.main': 'name'
- })
- this.search()
- },
- methods: {
- rowStyle() {
- return "text-align:center";
- },
- changeStatus(item) {
- updateDisableById({
- id: item.id,
- status: item.status
- }).then(res => {
- this.$tip.apiSuccess('鏇存柊鎴愬姛')
- }).catch (err => {
- this.$message.error(err)
- })
- .finally(() => {
- this.handlePageChange()
- })
- },
- edit(id) {
- queryById(id)
- .then(res => {
- let obj = {
- id,
- name: res.name,
- attrFirst: res.attrFirst,
- attrFirstList: res.attrFirstList,
- attrSecond: res.attrSecond,
- attrSecondList: res.attrSecondList,
- sortnum: res.sortnum,
- paramList: res.paramList,
- imgurl: res.imgurl,
- budgetList: res.budgetList,
- fileList: res.imgurl ? [{ url: res.prefixUrl + res.imgurl }] : []
- }
- this.$refs.operaCategoryWindow.open('缂栬緫绫诲埆', res)
- })
- }
- }
-}
-</script>
-
\ No newline at end of file
diff --git a/platform/src/views/business/company.vue b/platform/src/views/business/company.vue
deleted file mode 100644
index 8db04cd..0000000
--- a/platform/src/views/business/company.vue
+++ /dev/null
@@ -1,153 +0,0 @@
-<template>
- <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>
- <!-- <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>
- <el-form-item label="鏈夋晥鏈�" prop="oepnValidDate">
- <el-date-picker type="daterange" v-model="oepnValidDate" value-format="yyyy-MM-dd" start-placeholder="寮�濮嬫棩鏈�"
- end-placeholder="缁撴潫鏃ユ湡" @change="selectOepnValidDate" />
- </el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-select v-model="searchForm.status" clearable placeholder="璇烽�夋嫨" @change="search">
- <el-option label="鍚敤" :value="0"></el-option>
- <el-option label="绂佺敤" :value="1"></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>
- <ul class="toolbar" v-permissions="['business:company:create']">
- <li><el-button type="primary" @click="$refs.operaCompanyWindow.open('鏂板缓绯荤粺-浼佷笟淇℃伅琛�')"
- v-permissions="['business:company:create']">鏂板缓</el-button></li>
- </ul>
- <el-table v-loading="isWorking.search" :data="tableData.list" border stripe
- @selection-change="handleSelectionChange">
- <!-- <el-table-column type="selection" width="55" align="center"></el-table-column> -->
- <el-table-column prop="id" label="浼佷笟缂栧彿" fixed="left" 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="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">
- <template slot-scope="{row}">
- {{ row.userNum || '涓嶉檺' }}
- </template>
- </el-table-column>
- <el-table-column prop="anchorUserNum" label="涓绘挱鏁�" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="empUserNum" label="鍛樺伐鏁�" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="goodsNum" 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">
- <template slot-scope="{row}">
- <!-- 0鍚敤 1绂佺敤 -->
- <el-switch :disabled="!containPermissions(['business:company:update'])" v-model="row.status"
- :inactive-value="1" :active-value="0" @change="changeStatus(row)">
- </el-switch>
- </template>
-
- </el-table-column>
- <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px" align="center"></el-table-column>
- <el-table-column v-if="containPermissions(['business:company:update', 'business:company:delete'])" label="鎿嶄綔"
- min-width="160" align="center" fixed="right">
- <template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaCompanyWindow.open('缂栬緫浼佷笟', row)"
- v-permissions="['business:company:update']">缂栬緫</el-button>
- <el-button type="text" @click="$refs.operaCompanyValidDateWindow.open('璋冩暣鏈夋晥鏈�', row)"
- v-permissions="['business:company:update']">璋冩暣鏈夋晥鏈�</el-button>
- <el-button type="text" @click="deleteById(row)" style="color: red;" v-permissions="['business:company:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaCompanyWindow ref="operaCompanyWindow" @success="handlePageChange" />
- <OperaCompanyValidDateWindow ref="operaCompanyValidDateWindow" @success="handlePageChange" />
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaCompanyWindow from '@/components/business/OperaCompanyWindow'
-import OperaCompanyValidDateWindow from '@/components/business/OperaCompanyValidDateWindow'
-import { updateById } from '@/api/business/company'
-export default {
- name: 'Company',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaCompanyWindow, OperaCompanyValidDateWindow },
- data() {
- return {
- oepnValidDate: [],
- // 鎼滅储
- searchForm: {
- oepnValidDateStart: '',
- oepnValidDateEnd: '',
- managerUserName: '',
- updateTime: '',
- name: '',
- shortName: '',
- remark: '',
- managerId: '',
- linkname: '',
- linkephone: '',
- creditCode: '',
- userNum: '',
- oepnValidDate: '',
- oepnType: '',
- salesmanId: '',
- status: ''
- }
- }
- },
- created() {
- this.config({
- module: '绯荤粺-浼佷笟淇℃伅琛�',
- api: '/business/company',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- selectOepnValidDate(v) {
- [this.searchForm.oepnValidDateStart, this.searchForm.oepnValidDateEnd] = v
- },
- reset() {
- // this.reset()
- this.$refs.searchForm.resetFields()
- this.searchForm.oepnValidDateStart = ''
- this.searchForm.oepnValidDateEnd = ''
- this.oepnValidDate = []
- this.search()
- },
- changeStatus(row) {
- updateById(row)
- .then(() => {
- this.$tip.apiSuccess('鏇存柊鎴愬姛')
- })
- .catch(err => {
- this.$tip.apiFailed(err)
- })
- .finally(() => {
- this.handlePageChange()
- })
- }
- },
-}
-</script>
diff --git a/platform/src/views/business/companyUser.vue b/platform/src/views/business/companyUser.vue
deleted file mode 100644
index a0b541d..0000000
--- a/platform/src/views/business/companyUser.vue
+++ /dev/null
@@ -1,115 +0,0 @@
-<template>
- <TableLayout :permissions="['business:companyUser:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="浼佷笟鍚嶇О" prop="companyName">
- <el-input v-model="searchForm.companyName" 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="keyWords">
- <el-input v-model="searchForm.keyWords" placeholder="璇疯緭鍏ョ櫥褰曡处鍙�/濮撳悕" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-select v-model="searchForm.status" clearable placeholder="璇烽�夋嫨" @change="search">
- <el-option label="鍚敤" :value="0"></el-option>
- <el-option label="绂佺敤" :value="1"></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
- @selection-change="handleSelectionChange">
- <!-- <el-table-column type="selection" width="55" align="center"></el-table-column> -->
- <el-table-column prop="companyName" label="浼佷笟鍚嶇О" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="username" label="鐧诲綍璐﹀彿" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="realname" label="濮撳悕" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="mobile" label="鎵嬫満鍙�" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="roleName" label="瑙掕壊" min-width="100px" align="center">
- <template slot-scope="{row}">
- <ul>
- <li v-for="role in row.roles" :key="role.id">{{role.name}}</li>
- </ul>
- </template>
- </el-table-column>
- <el-table-column prop="status" label="鐘舵��" min-width="100px" align="center">
- <template slot-scope="{row}">
- <!-- 0鍚敤 1绂佺敤 -->
- <el-switch :disabled="!containPermissions(['business:companyUser:update'])" v-model="row.status"
- :inactive-value="1" :active-value="0" @change="changeStatus(row)">
- </el-switch>
- </template>
-
- </el-table-column>
- <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px" align="center"></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'
-import { updateById } from '@/api/system/user'
-export default {
- name: 'Company',
- extends: BaseTable,
- components: { TableLayout, Pagination },
- data() {
- return {
- oepnValidDate: [],
- // 鎼滅储
- searchForm: {
- companyName: '',
- keyWords: '',
- status: '',
- type: 1
- }
- }
- },
- created() {
- this.config({
- module: '绯荤粺-浼佷笟淇℃伅琛�',
- api: '/business/companyUser',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
- },
- methods: {
- selectOepnValidDate(v) {
- [this.searchForm.oepnValidDateStart, this.searchForm.oepnValidDateEnd] = v
- },
- reset() {
- // this.reset()
- this.$refs.searchForm.resetFields()
- this.searchForm.oepnValidDateStart = ''
- this.searchForm.oepnValidDateEnd = ''
- this.oepnValidDate = []
- this.search()
- },
- changeStatus(row) {
- updateById(row)
- .then(() => {
- this.$tip.apiSuccess('鏇存柊鎴愬姛')
- })
- .catch(err => {
- this.$tip.apiFailed(err)
- })
- .finally(() => {
- this.handlePageChange()
- })
- }
- },
-}
-</script>
diff --git a/platform/src/views/business/fileRecord.vue b/platform/src/views/business/fileRecord.vue
deleted file mode 100644
index f2160c6..0000000
--- a/platform/src/views/business/fileRecord.vue
+++ /dev/null
@@ -1,119 +0,0 @@
-<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
deleted file mode 100644
index dcc2e33..0000000
--- a/platform/src/views/business/goods.vue
+++ /dev/null
@@ -1,227 +0,0 @@
-
-<template>
- <TableLayout :permissions="['business:basegoods: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="鍟嗗搧ID" prop="id">
- <el-input v-model="searchForm.id" placeholder="璇疯緭鍏ュ晢鍝両D" @keypress.enter.native="search"></el-input>
- </el-form-item>
- <el-form-item label="绫诲埆" prop="categoryId">
- <el-select v-model="searchForm.categoryId" clearable placeholder="璇烽�夋嫨">
- <el-option v-for="item in categoryList" :key="item.id" :label="item.name" :value="item.id">
- </el-option>
- </el-select>
- <!-- <el-input v-model="searchForm.categoryId" placeholder="璇疯緭鍏ユ墍灞炲搧绫荤紪鐮�" @keypress.enter.native="search"></el-input> -->
- </el-form-item>
- <el-form-item label="鍝佺墝" prop="brandId">
- <el-select v-model="searchForm.brandId" clearable placeholder="璇烽�夋嫨">
- <el-option v-for="item in brandList" :key="item.id" :label="item.name" :value="item.id">
- </el-option>
- </el-select>
- <!-- <el-input v-model="searchForm.brandId" placeholder="璇疯緭鍏ユ墍灞炲搧鐗岀紪鐮�" @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-input v-model="searchForm.status" placeholder="璇疯緭鍏ョ姸鎬� 0鍚敤 1绂佺敤" @keypress.enter.native="search"></el-input> -->
- </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>
- <ul class="toolbar" v-permissions="['business:basegoods:create', 'business:basegoods:delete']">
- <li v-permissions="['business:basegoods:create']">
- <el-button type="primary" @click="$refs.operaGoodsWindow.open('鏂板缓鍟嗗搧')" icon="el-icon-plus">鏂板缓</el-button>
- </li>
- <!-- <el-button type="primary" :loading="isWorking.export"
- @click="$refs.selectProduct.open('閫夋嫨骞冲彴鍟嗗搧')">閫夋嫨骞冲彴鍟嗗搧</el-button> -->
- <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>
- <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 type="danger" @click="deleteByIdInBatch">鎵归噺鍒犻櫎</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">
- <el-table-column type="selection" width="55"></el-table-column>
- <el-table-column prop="id" label="鍟嗗搧ID" min-width="100px"></el-table-column>
- <el-table-column prop="name" label="鍟嗗搧鍚嶇О/鍨嬪彿" min-width="200px">
- <template slot-scope="{row}">
- <div style="display: flex; align-items: center;">
- <div style="width: 70px; height: 70px; flex-shrink: 0;">
- <el-image v-if="row.imgurl" style="width: 70px; height: 70px" :src="row.fullImgUrl"
- :preview-src-list="[row.fullImgUrl]" fit="cover"></el-image>
- </div>
- <span style="margin-left: 15px">{{ row.name }}</span>
- </div>
- </template>
- </el-table-column>
- <el-table-column prop="brandName" label="鍝佺墝" min-width="100px"></el-table-column>
- <el-table-column prop="categoryName" label="绫诲埆" min-width="100px"></el-table-column>
- <el-table-column prop="zdPrice" label="鎸囧浠凤紙鍏冿級" min-width="100px"></el-table-column>
- <el-table-column prop="jdPrice" 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" 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">
- </el-switch>
- </template>
- </el-table-column>
- <el-table-column v-if="containPermissions(['business:basegoods:update', 'business:basegoods:delete'])" label="鎿嶄綔"
- min-width="120" fixed="right">
- <template slot-scope="{row}">
- <el-button type="text" @click="edit(row.id)" icon="el-icon-edit"
- v-permissions="['business:basegoods:update']">缂栬緫</el-button>
- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
- v-permissions="['business:basegoods:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
- </pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaGoodsWindow ref="operaGoodsWindow" @success="handlePageChange" />
- <!-- 閫夋嫨骞冲彴鍟嗗搧 -->
- <selectProduct ref="selectProduct" @success="handlePageChange" @result="search" />
- </TableLayout>
-</template>
-
-<script>
-import BaseTable from '@/components/base/BaseTable'
-import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import OperaGoodsWindow from '@/components/business/OperaGoodsWindow'
-import selectProduct from '@/components/business/selectProduct'
-import ImportButton from '@/components/common/ImportButton'
-import { brand, baseCategory } from '@/api/system/common.js'
-import { updateStatus, queryById, exportDoc } from '@/api/business/goods.js'
-export default {
- name: 'Goods',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaGoodsWindow, selectProduct, ImportButton },
- data() {
- return {
- // 鎼滅储
- searchForm: {
- id: '',
- name: '',
- status: '',
- categoryId: '',
- brandId: ''
- },
- ids: '',
- idList: [],
- categoryList: [],
- brandList: [],
- statusList: [
- { name: '鍚敤', id: 0 },
- { name: '绂佺敤', id: 1 }
- ]
- }
- },
- provide() {
- return {
- brandList: () => this.brandList,
- categoryList: () => this.categoryList
- }
- },
- created() {
- this.config({
- module: '鍟嗗搧',
- api: '/business/goods',
- 'field.id': 'id',
- 'field.main': 'name'
- })
- this.search()
- this.getbrand()
- this.getcategory()
- },
- methods: {
- // handleSelectionChange(e) {
- // let arr = e.map(item => item.id)
- // this.ids = arr.join(',')
- // this.idList = arr;
- // },
- // 鎵归噺涓婁笅鏋�
- bulkOperation(type) {
- if (this.tableData.selectedRows.length === 0) {
- this.$tip.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹�')
- return
- }
- let idList = this.tableData.selectedRows.map(item => item.id)
- updateStatus({
- idList,
- status: type
- }).then(res => {
- this.$tip.apiSuccess('鎿嶄綔鎴愬姛');
- // this.$message.success({ message:res.message })
- this.handlePageChange()
- })
- },
- downloadFile() {
- exportDoc({})
- .then(response => {
- this.download(response)
- })
- .catch(e => {
- this.$tip.apiFailed(e)
- })
- },
- rowStyle() {
- return "text-align:center";
- },
- edit(id) {
- queryById(id)
- .then(res => {
- this.$refs.operaGoodsWindow.open('缂栬緫鍟嗗搧', res)
- })
- },
- changeStatus(item) {
- updateStatus({
- idList: [item.id],
- status: item.status
- }).then(res => {
- this.$tip.apiSuccess('鏇存柊鎴愬姛')
- })
- .catch (err => {
- this.$message.error(err)
- } )
- .finally(() => {
- this.handlePageChange()
- })
- },
- getbrand() {
- brand({ type: 1 })
- .then(res => {
- this.brandList = res
- })
- },
- getcategory() {
- baseCategory({})
- .then(res => {
- this.categoryList = res
- })
- }
- }
-}
-</script>
diff --git a/platform/src/views/business/role.vue b/platform/src/views/business/role.vue
deleted file mode 100644
index 9adc347..0000000
--- a/platform/src/views/business/role.vue
+++ /dev/null
@@ -1,107 +0,0 @@
-<template>
- <TableLayout :permissions="['system:role:query']">
- <!-- 鎼滅储琛ㄥ崟 -->
- <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="瑙掕壊缂栫爜" prop="code">
- <el-input v-model="searchForm.code" v-trim placeholder="璇疯緭鍏ヨ鑹茬紪鐮�" @keypress.enter.native="search"/>
- </el-form-item>
- <el-form-item label="瑙掕壊鍚嶇О" prop="name">
- <el-input v-model="searchForm.name" v-trim placeholder="璇疯緭鍏ヨ鑹插悕绉�" @keypress.enter.native="search"/>
- </el-form-item>
- <section>
- <el-button type="primary" icon="el-icon-search" @click="search">鎼滅储</el-button>
- <el-button @click="reset">閲嶇疆</el-button>
- </section>
- </el-form>
- <!-- 琛ㄦ牸鍜屽垎椤� -->
- <template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['system:role:create', 'system:role:delete']">
- <li v-permissions="['system:role:create']"><el-button type="primary" @click="$refs.operaRoleWindow.open('鏂板缓瑙掕壊', null, 1)" icon="el-icon-plus">鏂板缓</el-button></li>
- <li v-permissions="['system:role:delete']"><el-button @click="deleteByIdInBatch" icon="el-icon-delete">鍒犻櫎</el-button></li>
- </ul>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- :default-sort = "{prop: 'createTime', order: 'descending'}"
- stripe
- border
- @selection-change="handleSelectionChange"
- @sort-change="handleSortChange"
- >
- <el-table-column type="selection" fixed="left" width="55"></el-table-column>
- <el-table-column prop="code" label="瑙掕壊缂栫爜" fixed="left" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="name" label="瑙掕壊鍚嶇О" fixed="left" min-width="100px" align="center"></el-table-column>
- <el-table-column prop="remark" label="瑙掕壊澶囨敞" min-width="120px" align="center"></el-table-column>
- <el-table-column prop="createUser" label="鍒涘缓浜�" min-width="100px" align="center">
- <template slot-scope="{row}">{{row.createUserInfo == null ? '' : row.createUserInfo.username}}</template>
- </el-table-column>
- <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="140px" align="center"></el-table-column>
- <el-table-column prop="updateUser" label="鏇存柊浜�" min-width="100px" align="center">
- <template slot-scope="{row}">{{row.updateUserInfo == null ? '' : row.updateUserInfo.username}}</template>
- </el-table-column>
- <el-table-column prop="updateTime" label="鏇存柊鏃堕棿" min-width="140px" align="center"></el-table-column>
- <el-table-column
- v-if="containPermissions(['system:role:update', 'system:role:createRolePermission', 'system:role:createRoleMenu', 'system:role:delete'])"
- label="鎿嶄綔"
- min-width="270"
- align="center"
- fixed="right"
- >
- <template v-if="isAdmin || (row.code !== adminCode && userInfo.roles.findIndex(code => code === row.code) === -1)" slot-scope="{row}">
- <el-button type="text" @click="$refs.operaRoleWindow.open('缂栬緫瑙掕壊', row, 1)" icon="el-icon-edit" v-permissions="['system:role:update']">缂栬緫</el-button>
- <el-button type="text" @click="$refs.permissionConfigWindow.open(row,1)" v-permissions="['system:role:createRolePermission']">閰嶇疆鏉冮檺</el-button>
- <el-button type="text" @click="$refs.menuConfigWindow.open(row, 1)" icon="el-icon-menu" v-permissions="['system:role:createRoleMenu']">鎺堟潈鑿滃崟</el-button>
- <el-button v-if="!row.fixed" type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['system:role:delete']">鍒犻櫎</el-button>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- @size-change="handleSizeChange"
- @current-change="handlePageChange"
- :pagination="tableData.pagination"
- ></pagination>
- </template>
- <!-- 鏂板缓/淇敼 -->
- <OperaRoleWindow ref="operaRoleWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
- <!-- 閰嶇疆鏉冮檺 -->
- <PermissionConfigWindow ref="permissionConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
- <!-- 鎺堟潈鑿滃崟 -->
- <MenuConfigWindow ref="menuConfigWindow" @success="handlePageChange(tableData.pagination.pageIndex)"/>
- </TableLayout>
-</template>
-
-<script>
-import Pagination from '@/components/common/Pagination'
-import TableLayout from '@/layouts/TableLayout'
-import BaseTable from '@/components/base/BaseTable'
-import OperaRoleWindow from '@/components/system/role/OperaRoleWindow'
-import PermissionConfigWindow from '@/components/system/role/PermissionConfigWindow'
-import MenuConfigWindow from '@/components/system/role/MenuConfigWindow'
-export default {
- name: 'SystemRole',
- extends: BaseTable,
- components: { MenuConfigWindow, PermissionConfigWindow, OperaRoleWindow, TableLayout, Pagination },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- code: '',
- name: '',
- remark: '',
- type: 1
- }
- }
- },
- created () {
- this.config({
- module: '瑙掕壊',
- api: '/system/role',
- sorts: [{
- property: 'role.CREATE_TIME',
- direction: 'DESC'
- }]
- })
- this.search()
- }
-}
-</script>
diff --git a/platform/vue.config.js b/platform/vue.config.js
index 6b5f23a..12edf6e 100644
--- a/platform/vue.config.js
+++ b/platform/vue.config.js
@@ -1,24 +1,9 @@
-
-const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length)
-// const proxyMiddleware = require('http-proxy-middleware');
module.exports = {
publicPath: './',
- outputDir: outputDir || 'web',
+ outputDir: 'web',
assetsDir: 'static',
lintOnSave: false,
devServer: {
- // before(app) {
- // app.use(
- // [process.env.VUE_APP_API_PREFIX],
- // proxyMiddleware({
- // target: process.env.VUE_APP_API,
- // changeOrigin: true,
- // pathRewrite: {
- // [`^${[process.env.VUE_APP_API_PREFIX]}`]: ''
- // }
- // })
- // );
- // },
host: '0.0.0.0',
port: 10086,
proxy: {
--
Gitblit v1.9.3