From 0f1443d33d4099564f84e1a3f4f1572841a370ff Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 03 一月 2024 11:26:04 +0800
Subject: [PATCH] Mr.Shi
---
admin/src/views/business/carEvent.vue | 2
admin/src/components/common/companySelect.vue | 84 +++++++
admin/src/assets/images/ar_more@2x.png | 0
admin/src/views/business/internalCompany.vue | 105 ++++---
admin/src/assets/images/peizhi_ar@2x.png | 0
admin/src/api/business/company.js | 10
admin/src/components/business/OperaInternalCompanyWindow.vue | 71 +++++
admin/src/views/business/approvalConfiguration.vue | 412 ++++++++++++++++++++++++++++++++++
admin/src/api/business/carEvent.js | 8
admin/src/assets/images/peizhi_add@2x.png | 0
10 files changed, 638 insertions(+), 54 deletions(-)
diff --git a/admin/src/api/business/carEvent.js b/admin/src/api/business/carEvent.js
index 51c51db..60df117 100644
--- a/admin/src/api/business/carEvent.js
+++ b/admin/src/api/business/carEvent.js
@@ -6,3 +6,11 @@
trim: true
})
}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/business/carEvent/exportExcel', data, {
+ trim: true,
+ download: true
+ })
+}
diff --git a/admin/src/api/business/company.js b/admin/src/api/business/company.js
index edaec75..b657431 100644
--- a/admin/src/api/business/company.js
+++ b/admin/src/api/business/company.js
@@ -1,12 +1,18 @@
import request from '../../utils/request'
// 鏌ヨ
-export function fetchList (data) {
- return request.post('/business/company/page', data, {
+export function fetchList (type) {
+ return request.get(`/business/company/tree?type=${type}`, {
trim: true
})
}
+// export function fetchList (data) {
+// return request.post('/business/company/page', data, {
+// trim: true
+// })
+// }
+
// 鍒涘缓
export function create (data) {
return request.post('/business/company/create', data)
diff --git a/admin/src/assets/images/ar_more@2x.png b/admin/src/assets/images/ar_more@2x.png
new file mode 100644
index 0000000..285b26c
--- /dev/null
+++ b/admin/src/assets/images/ar_more@2x.png
Binary files differ
diff --git a/admin/src/assets/images/peizhi_add@2x.png b/admin/src/assets/images/peizhi_add@2x.png
new file mode 100644
index 0000000..a8334bd
--- /dev/null
+++ b/admin/src/assets/images/peizhi_add@2x.png
Binary files differ
diff --git a/admin/src/assets/images/peizhi_ar@2x.png b/admin/src/assets/images/peizhi_ar@2x.png
new file mode 100644
index 0000000..ce80b62
--- /dev/null
+++ b/admin/src/assets/images/peizhi_ar@2x.png
Binary files differ
diff --git a/admin/src/components/business/OperaInternalCompanyWindow.vue b/admin/src/components/business/OperaInternalCompanyWindow.vue
index 5d0b5fd..082e5d2 100644
--- a/admin/src/components/business/OperaInternalCompanyWindow.vue
+++ b/admin/src/components/business/OperaInternalCompanyWindow.vue
@@ -6,8 +6,11 @@
@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 label="涓婄骇缁勭粐" prop="parentId">
+ <companySelect v-if="visible" v-model="form.parentId" placeholder="璇烽�夋嫨涓婄骇鑿滃崟" clearable :inline="false"/>
+ </el-form-item>
+ <el-form-item label="缁勭粐鍚嶇О" prop="name">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" v-trim/>
</el-form-item>
</el-form>
</GlobalWindow>
@@ -16,20 +19,32 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
+import companySelect from '@/components/common/companySelect'
export default {
name: 'OperaInternalCompanyWindow',
extends: BaseOpera,
- components: { GlobalWindow },
+ components: { GlobalWindow, companySelect },
data () {
return {
+ options: [],
// 琛ㄥ崟鏁版嵁
form: {
id: null,
- name: ''
+ name: '',
+ parentId: [],
+ disable: false
},
// 楠岃瘉瑙勫垯
rules: {
+ name: [
+ { required: true, message: '璇疯緭鍏ョ粍缁囧悕绉�' }
+ ]
}
+ }
+ },
+ props: {
+ list: {
+ type: Array
}
},
created () {
@@ -37,6 +52,54 @@
api: '/business/company',
'field.id': 'id'
})
+ },
+ methods: {
+ // 纭鏂板缓/淇敼
+ confirm () {
+ this.$refs.form.validate((valid) => {
+ if (!valid) {
+ return
+ }
+ // 璋冪敤鏂板缓鎺ュ彛
+ this.isWorking = true
+ if (this.form.id == null || this.form.id === '') {
+ this.api.create({
+ parentId: this.form.parentId,
+ name: this.form.name,
+ type: 1
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('鏂板缓鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ } else {
+ this.api.updateById({
+ id: this.form.id,
+ parentId: this.form.parentId,
+ name: this.form.name,
+ type: 1
+ })
+ .then(() => {
+ this.visible = false
+ this.$tip.apiSuccess('淇敼鎴愬姛')
+ this.$emit('success')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking = false
+ })
+ }
+ })
+ }
}
}
</script>
diff --git a/admin/src/components/common/companySelect.vue b/admin/src/components/common/companySelect.vue
new file mode 100644
index 0000000..8910570
--- /dev/null
+++ b/admin/src/components/common/companySelect.vue
@@ -0,0 +1,84 @@
+<template>
+ <TreeSelect
+ :placeholder="placeholder"
+ :value="value"
+ :data="data"
+ :append-to-body="appendToBody"
+ :clearable="clearable"
+ :inline="inline"
+ @input="$emit('input', $event)"
+ />
+</template>
+
+<script>
+import TreeSelect from './TreeSelect'
+import { fetchList } from '@/api/business/company'
+export default {
+ name: 'MenuSelect',
+ components: { TreeSelect },
+ props: {
+ value: {},
+ inline: {
+ default: true
+ },
+ placeholder: {
+ default: '璇烽�夋嫨鑿滃崟'
+ },
+ // 鏄惁鍙竻绌�
+ clearable: {
+ default: false
+ },
+ appendToBody: {
+ default: false
+ },
+ // 闇�琚帓闄ょ殑閮ㄩ棬ID
+ excludeId: {}
+ },
+ data () {
+ return {
+ data: []
+ }
+ },
+ watch: {
+ excludeId () {
+ this.fetchData()
+ }
+ },
+ methods: {
+ // 鑾峰彇鎵�鏈夎彍鍗�
+ fetchData () {
+ fetchList(1)
+ .then(records => {
+ this.data = []
+ this.__fillData(this.data, records)
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ },
+ // 濉厖鑿滃崟鏍�
+ __fillData (list, pool) {
+ for (const menu of pool) {
+ if (menu.id === this.excludeId) {
+ continue
+ }
+ const menuNode = {
+ id: menu.id,
+ label: menu.name
+ }
+ list.push(menuNode)
+ if (menu.childList != null && menu.childList.length > 0) {
+ menuNode.children = []
+ this.__fillData(menuNode.children, menu.childList)
+ if (menuNode.children.length === 0) {
+ menuNode.children = undefined
+ }
+ }
+ }
+ }
+ },
+ created () {
+ this.fetchData()
+ }
+}
+</script>
diff --git a/admin/src/views/business/approvalConfiguration.vue b/admin/src/views/business/approvalConfiguration.vue
new file mode 100644
index 0000000..24532ad
--- /dev/null
+++ b/admin/src/views/business/approvalConfiguration.vue
@@ -0,0 +1,412 @@
+<template>
+ <TableLayout>
+ <template v-slot:table-wrap>
+ <div class="config">
+ <div class="config_list">
+ <div class="config_list_head">
+ <span>閰嶇疆娴佺▼</span>
+ <el-button style="background: #435EBE;" type="primary">鍙戝竷</el-button>
+ </div>
+ <div class="config_list_list">
+ <div class="item">
+ <div class="item_label">鍙戣捣浜�</div>
+ <div class="item_child">
+ <div class="item_child_label">绋嬫槬鏋�</div>
+ <div class="item_child_val">璁垮</div>
+ </div>
+ <div class="item_down">
+ <div class="item_down_x">
+ <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
+ </div>
+ </div>
+ </div>
+ <div :class="item.active ? 'item yellow active' : 'item yellow'" v-for="(item, index) in list" :key="index" @click="seleItem(index)">
+ <div class="item_label">瀹℃壒浜�</div>
+ <div class="item_child" style="cursor: pointer;">
+ <img class="item_child_right" src="@/assets/images/ar_more@2x.png" />
+ <div class="item_child_label">琚浜�</div>
+ <div class="item_child_val">璁垮</div>
+ </div>
+ <div class="item_down">
+ <img class="item_down_add" v-if="list.length - 1 === index" src="@/assets/images/peizhi_add@2x.png" @click.stop="add" />
+ <div class="item_down_x">
+ <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
+ </div>
+ </div>
+ </div>
+ <div class="item blue" style="height: 81px;">
+ <div class="item_label">鎶勯�佷汉</div>
+ <div class="item_child" style="cursor: pointer;height: 40px;">
+ <img class="item_child_right" src="@/assets/images/ar_more@2x.png" />
+ <div class="item_child_val" style="margin-top: 3px;">璇疯缃妱閫佷汉</div>
+ </div>
+ <div class="item_down">
+ <div class="item_down_x">
+ <img src="@/assets/images/peizhi_ar@2x.png" alt="" />
+ </div>
+ </div>
+ </div>
+ <div class="footer">
+ <span>娴佺▼缁撴潫</span>
+ </div>
+ </div>
+ </div>
+ <div class="config_data">
+ <div class="config_data_item">
+ <div class="config_data_item_label">
+ 閫夋嫨璇ヨ妭鐐圭殑瀹℃壒浜�
+ </div>
+ <el-radio-group v-model="radio">
+ <el-radio :label="0">琚浜�</el-radio>
+ <el-radio :label="1">鎸囧畾浜哄憳</el-radio>
+ <el-radio :label="2">閮ㄩ棬涓荤</el-radio>
+ </el-radio-group>
+ <div class="config_data_item_reviewed" v-if="radio === 1">
+ <div class="config_data_item_reviewed_label">
+ <span>鎸囧畾瀹℃牳浜�</span>
+ <span>涓嶈秴杩�20浜�</span>
+ </div>
+ <div class="config_data_item_reviewed_content">
+ <div class="config_data_item_reviewed_content_item">
+ <span>鏍撳瓙鍝�</span>
+ <i class="el-icon-close"></i>
+ </div>
+ <span class="add">+娣诲姞</span>
+ </div>
+ </div>
+ <div class="config_data_item_reviewed" v-if="radio === 2">
+ <div class="config_data_item_reviewed_label">
+ <span>閮ㄩ棬涓荤</span>
+ </div>
+ <div class="config_data_item_reviewed_r">
+ <span>琚浜虹殑</span>
+ <el-select v-model="value" placeholder="璇烽�夋嫨" style="margin: 0 20px 0 10px;">
+ <el-option
+ v-for="item in options"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ <el-checkbox v-model="checked">鎵句笉鍒颁富绠℃椂锛岀敱涓婄骇涓荤浠e鏍�</el-checkbox>
+ </div>
+ </div>
+ </div>
+ <div class="config_data_item" v-if="radio !== 0">
+ <div class="config_data_item_label">
+ 瀹℃壒鏂瑰紡
+ <span>瀹℃壒浜轰负澶氫釜鏃讹紝閲囩敤鐨勫鎵规柟寮�</span>
+ </div>
+ <el-radio-group v-model="radio1" style="display: flex; flex-direction: column;">
+ <el-radio :label="0" style="margin-bottom: 20px;">鎴栫锛堝叾涓竴鍚嶅鎵逛汉鍚屾剰鎴栨嫆缁濆嵆鍙級</el-radio>
+ <el-radio :label="1">浼氱锛堟墍鏈夊鎵逛汉閮藉悓鎰忔墠鍙�氳繃锛�</el-radio>
+ </el-radio-group>
+ </div>
+ <div class="config_data_item" v-if="radio === 2">
+ <div class="config_data_item_label">
+ 瀹℃壒浜轰负绌烘椂
+ </div>
+ <el-checkbox-group v-model="checkList" style="display: flex; flex-direction: column;">
+ <el-checkbox label="澶嶉�夋 A" style="margin-bottom: 20px;"></el-checkbox>
+ <el-checkbox label="澶嶉�夋 B" style="margin-bottom: 20px;"></el-checkbox>
+ <el-checkbox label="澶嶉�夋 C"></el-checkbox>
+ </el-checkbox-group>
+ </div>
+ <div class="config_data_submit" v-if="radio !== 0">
+ <el-button style="background: #435EBE;" type="primary">淇濇寔閰嶇疆椤�</el-button>
+ </div>
+ </div>
+ </div>
+ </template>
+ </TableLayout>
+</template>
+
+<script>
+import TableLayout from '@/layouts/TableLayout'
+export default {
+ name: 'config',
+ components: { TableLayout },
+ data () {
+ return {
+ list: [
+ {
+ name: '',
+ active: false
+ }
+ ],
+ value: '',
+ options: [],
+ radio: 0,
+ radio1: 0,
+ checked: '',
+ checkList: []
+ }
+ },
+ methods: {
+ add () {
+ this.list.push({
+ name: '',
+ active: false
+ })
+ },
+ seleItem (i) {
+ this.list.forEach((item, index) => {
+ item.active = index === i
+ })
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+ .config {
+ width: 100%;
+ padding-bottom: 20px;
+ box-sizing: border-box;
+ height: calc(100vh - 140px);
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .config_list {
+ width: 543px;
+ height: 100%;
+ flex-shrink: 0;
+ border-radius: 2px;
+ padding: 20px;
+ box-sizing: border-box;
+ border: 1px solid #EEEEEE;
+ background: #F7F7F7;
+ .config_list_head {
+ width: 100%;
+ height: 40px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ span {
+ font-size: 18px;
+ font-weight: 500;
+ color: #222222;
+ }
+ }
+ .config_list_list {
+ width: 100%;
+ height: calc(100% - 40px);
+ padding-top: 45px;
+ box-sizing: border-box;
+ overflow-y: scroll;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ &::-webkit-scrollbar {
+ width: 0;
+ }
+ .active {
+ border: 2px solid #E84A08 !important;
+ }
+ .yellow {
+ background: #EE8921 !important;
+ }
+ .blue {
+ background: #435EBE !important;
+ }
+ .footer {
+ width: 106px;
+ height: 41px;
+ background: #FFFFFF;
+ box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.1);
+ border-radius: 25px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ span {
+ font-size: 15px;
+ font-weight: 400;
+ color: #333333;
+ }
+ }
+ .item {
+ width: 200px;
+ height: 102px;
+ background: #7999D9;
+ box-shadow: 0 0 8px 0 rgba(0,0,0,0.1);
+ border-radius: 4px;
+ padding: 4px;
+ box-sizing: border-box;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ position: relative;
+ margin-bottom: 60px;
+ &:last-child {
+ margin: 0 !important;
+ }
+ .item_down {
+ position: absolute;
+ bottom: -60px;
+ width: 100%;
+ height: 60px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ .item_down_add {
+ width: 46px;
+ height: 46px;
+ position: absolute;
+ z-index: 3;
+ top: 5px;
+ cursor: pointer;
+ }
+ .item_down_x {
+ width: 1px;
+ height: 60px;
+ background: #B2B2B2;
+ position: relative;
+ img {
+ position: absolute;
+ bottom: 0;
+ left: -4px;
+ width: 9px;
+ height: 9px;
+ }
+ }
+ }
+ .item_label {
+ width: 100%;
+ height: 30px;
+ display: flex;
+ align-items: center;
+ font-size: 15px;
+ font-weight: 400;
+ color: #FFFFFF;
+ }
+ .item_child {
+ width: 100%;
+ height: 61px;
+ padding: 10px;
+ box-sizing: border-box;
+ background: #FFFFFF;
+ border-radius: 4px;
+ position: relative;
+ .item_child_right {
+ position: absolute;
+ right: 10px;
+ top: 13px;
+ width: 8px;
+ height: 14px;
+ }
+ .item_child_label {
+ font-size: 14px;
+ font-weight: 400;
+ color: #333333;
+ margin-bottom: 4px;
+ }
+ .item_child_val {
+ font-size: 12px;
+ font-weight: 400;
+ color: #999999;
+ }
+ }
+ }
+ }
+ }
+ .config_data {
+ flex: 1;
+ height: 100%;
+ margin-left: 20px;
+ .config_data_submit {
+ margin-top: 50px;
+ }
+ .config_data_item {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ margin-bottom: 30px;
+ &:last-child {
+ margin: 0 !important;
+ }
+ .config_data_item_label {
+ font-size: 16px;
+ font-weight: 500;
+ color: #222222;
+ margin-bottom: 20px;
+ span {
+ font-size: 12px;
+ font-weight: 400;
+ color: #999999;
+ margin-left: 10px;
+ }
+ }
+ .config_data_item_reviewed {
+ width: 100%;
+ margin-top: 20px;
+ .config_data_item_reviewed_r {
+ margin-top: 10px;
+ width: 100%;
+ display: flex;
+ align-items: center;
+ span {
+ flex-shrink: 0;
+ font-size: 14px;
+ font-weight: 400;
+ color: #666666;
+ }
+ }
+ .config_data_item_reviewed_label {
+ display: flex;
+ align-items: center;
+ span {
+ &:nth-child(1) {
+ font-size: 14px;
+ font-weight: 400;
+ color: #222222;
+ }
+ &:nth-child(2) {
+ font-size: 12px;
+ font-weight: 400;
+ color: #999999;
+ margin-left: 8px;
+ }
+ }
+ }
+ .config_data_item_reviewed_content {
+ width: 400px;
+ margin-top: 10px;
+ height: 110px;
+ padding: 12px;
+ box-sizing: border-box;
+ border-radius: 2px;
+ border: 1px solid #DFE2E8;
+ display: flex;
+ align-items: flex-start;
+ flex-wrap: wrap;
+ .add {
+ font-size: 12px;
+ font-weight: 400;
+ color: #435EBE;
+ cursor: pointer;
+ margin-top: 3px;
+ }
+ .config_data_item_reviewed_content_item {
+ padding: 3px 5px;
+ background: #F4F7FC;
+ border-radius: 2px;
+ box-sizing: border-box;
+ margin-right: 10px;
+ margin-bottom: 10px;
+ span {
+ font-size: 12px;
+ font-weight: 400;
+ color: #333333;
+ }
+ i {
+ color: #949BA2;
+ margin-left: 10px;
+ cursor: pointer;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+</style>
diff --git a/admin/src/views/business/carEvent.vue b/admin/src/views/business/carEvent.vue
index aba7510..90aee50 100644
--- a/admin/src/views/business/carEvent.vue
+++ b/admin/src/views/business/carEvent.vue
@@ -51,7 +51,7 @@
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
<ul class="toolbar" v-permissions="['business:carevent:exportExcel']">
- <li><el-button type="primary" v-permissions="['business:carevent:exportExcel']">瀵煎嚭</el-button></li>
+ <li><el-button type="primary" :loading="isWorking.export" v-permissions="['business:carevent:exportExcel']" @click="exportExcel">瀵煎嚭</el-button></li>
</ul>
<el-table
v-loading="isWorking.search"
diff --git a/admin/src/views/business/internalCompany.vue b/admin/src/views/business/internalCompany.vue
index 2cba996..e486966 100644
--- a/admin/src/views/business/internalCompany.vue
+++ b/admin/src/views/business/internalCompany.vue
@@ -1,75 +1,71 @@
<template>
- <TableLayout :permissions="['business:company:query']">
+ <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="parentName">
- <el-input v-model="searchForm.parentName" 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>
+<!-- <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="parentName">-->
+<!-- <el-input v-model="searchForm.parentName" 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:company:create', 'business:company:delete']">
- <li><el-button type="primary" v-permissions="['business:company:create']" @click="synchronous()">鍚屾</el-button></li>
+<!-- <li><el-button type="primary" v-permissions="['business:company:create']" @click="synchronous()">鍚屾</el-button></li>-->
+ <li><el-button type="primary" v-permissions="['business:company:create']" @click="$refs.OperaInternalCompanyWindow.open('鏂板缓浼佷笟')">鏂板缓</el-button></li>
</ul>
<el-table
v-loading="isWorking.search"
- :data="tableData.list"
+ :data="list"
stripe
+ :tree-props="{children: 'childList'}"
+ row-key="id"
@selection-change="handleSelectionChange"
>
- <el-table-column type="selection" width="55"></el-table-column>
+<!-- <el-table-column type="selection" width="55"></el-table-column>-->
<el-table-column prop="name" label="缁勭粐鍚嶇О" min-width="100px"></el-table-column>
- <el-table-column prop="parentName" label="涓婄骇缁勭粐" min-width="100px"></el-table-column>
<el-table-column prop="editDate" label="鏈�鍚庢洿鏂版椂闂�" min-width="100px"></el-table-column>
-<!-- <el-table-column-->
-<!-- v-if="containPermissions(['business:company:update', 'business:company:delete'])"-->
-<!-- label="鎿嶄綔"-->
-<!-- min-width="80"-->
-<!-- fixed="right"-->
-<!-- >-->
-<!-- <template slot-scope="{row}">-->
-<!-- <el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('缂栬緫浼佷笟淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:company:update']">缂栬緫</el-button>-->
-<!-- <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:company:delete']">鍒犻櫎</el-button>-->
-<!-- </template>-->
-<!-- </el-table-column>-->
+ <el-table-column
+ label="鎿嶄綔"
+ width="230"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('缂栬緫浼佷笟淇℃伅', row)" icon="el-icon-edit" v-permissions="['business:company:update']">缂栬緫</el-button>
+ <el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('鏂板缓瀛愮骇', { disable: true, parentId: row.id })" icon="el-icon-plus">鏂板缓瀛愮骇</el-button>
+ <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" 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>
<!-- 鏂板缓/淇敼 -->
-<!-- <OperaInternalCompanyWindow ref="OperaInternalCompanyWindow" @success="handlePageChange"/>-->
+ <OperaInternalCompanyWindow ref="OperaInternalCompanyWindow" :list="list" @success="handlePageChange"/>
</TableLayout>
</template>
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
-import Pagination from '@/components/common/Pagination'
-import { companySync } from '@/api/business/company'
-// import OperaInternalCompanyWindow from '@/components/business/OperaInternalCompanyWindow'
+// import { companySync } from '@/api/business/company'
+import OperaInternalCompanyWindow from '@/components/business/OperaInternalCompanyWindow'
export default {
name: 'internalCompany',
extends: BaseTable,
- components: { TableLayout, Pagination },
+ components: { TableLayout, OperaInternalCompanyWindow },
data () {
return {
// 鎼滅储
searchForm: {
- name: '',
- parentName: '',
type: 1
- }
+ },
+ list: [],
+ total: 0
}
},
created () {
@@ -82,12 +78,27 @@
this.search()
},
methods: {
- // 鍚屾淇℃伅
- async synchronous () {
- const message = await companySync({})
- this.$message.success(message)
- this.search()
+ // 椤电爜鍙樻洿澶勭悊
+ handlePageChange (pageIndex) {
+ this.__checkApi()
+ this.isWorking.search = true
+ this.api.fetchList(this.searchForm.type)
+ .then(data => {
+ this.list = data
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.isWorking.search = false
+ })
}
+ // 鍚屾淇℃伅
+ // async synchronous () {
+ // const message = await companySync({})
+ // this.$message.success(message)
+ // this.search()
+ // }
}
}
</script>
--
Gitblit v1.9.3