Commit c7ab595460aff1a99155d1fa0f55cb72a982a313
1 parent
bd912761
简化 yudao-ui 目录
Showing
12 changed files
with
8 additions
and
899 deletions
README.md
| ... | ... | @@ -57,14 +57,14 @@ |
| 57 | 57 | |
| 58 | 58 | ### 前端项目 |
| 59 | 59 | |
| 60 | -| 项目 | Star | 简介 | | |
| 61 | -|----------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------| | |
| 62 | -| [yudao-ui-admin-vue3](https://gitee.com/yudaocode/yudao-ui-admin-vue3) | [](https://gitee.com/yudaocode/yudao-ui-admin-vue3) [](https://github.com/yudaocode/yudao-ui-admin-vue3) | 基于 Vue3 + element-plus 实现的管理后台 | | |
| 63 | -| [yudao-ui-admin-vben](https://gitee.com/yudaocode/yudao-ui-admin-vben) | [](https://gitee.com/yudaocode/yudao-ui-admin-vben) [](https://github.com/yudaocode/yudao-ui-admin-vben) | 基于 Vue3 + element-plus 实现的管理后台 | | |
| 64 | -| [yudao-mall-uniapp](https://gitee.com/yudaocode/yudao-mall-uniapp) | [](https://gitee.com/yudaocode/yudao-mall-uniapp) [](https://github.com/yudaocode/yudao-mall-uniapp) | 基于 uni-app 实现的商城小程序 | | |
| 65 | -| [yudao-ui-admin-vue2](https://gitee.com/yudaocode/yudao-ui-admin-vue2) | [](https://gitee.com/yudaocode/yudao-ui-admin-vue2) [](https://github.com/yudaocode/yudao-ui-admin-vue2) | 基于 Vue2 + element-ui 实现的管理后台 | | |
| 66 | -| [yudao-ui-admin-uniapp](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) | [](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) [](https://github.com/yudaocode/yudao-ui-admin-uniapp) | 基于 Vue2 + element-ui 实现的管理后台 | | |
| 67 | -| [yudao-ui-go-view](https://gitee.com/yudaocode/yudao-ui-go-view) | [](https://gitee.com/yudaocode/yudao-ui-go-view) [](https://github.com/yudaocode/yudao-ui-go-view) | 基于 Vue3 + naive-ui 实现的大屏报表 | | |
| 60 | +| 项目 | Star | 简介 | | |
| 61 | +|----------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------| | |
| 62 | +| [yudao-ui-admin-vue3](https://gitee.com/yudaocode/yudao-ui-admin-vue3) | [](https://gitee.com/yudaocode/yudao-ui-admin-vue3) [](https://github.com/yudaocode/yudao-ui-admin-vue3) | 基于 Vue3 + element-plus 实现的管理后台 | | |
| 63 | +| [yudao-ui-admin-vben](https://gitee.com/yudaocode/yudao-ui-admin-vben) | [](https://gitee.com/yudaocode/yudao-ui-admin-vben) [](https://github.com/yudaocode/yudao-ui-admin-vben) | 基于 Vue3 + vben(ant-design-vue) 实现的管理后台 | | |
| 64 | +| [yudao-mall-uniapp](https://gitee.com/yudaocode/yudao-mall-uniapp) | [](https://gitee.com/yudaocode/yudao-mall-uniapp) [](https://github.com/yudaocode/yudao-mall-uniapp) | 基于 uni-app 实现的商城小程序 | | |
| 65 | +| [yudao-ui-admin-vue2](https://gitee.com/yudaocode/yudao-ui-admin-vue2) | [](https://gitee.com/yudaocode/yudao-ui-admin-vue2) [](https://github.com/yudaocode/yudao-ui-admin-vue2) | 基于 Vue2 + element-ui 实现的管理后台 | | |
| 66 | +| [yudao-ui-admin-uniapp](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) | [](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) [](https://github.com/yudaocode/yudao-ui-admin-uniapp) | 基于 Vue2 + element-ui 实现的管理后台 | | |
| 67 | +| [yudao-ui-go-view](https://gitee.com/yudaocode/yudao-ui-go-view) | [](https://gitee.com/yudaocode/yudao-ui-go-view) [](https://github.com/yudaocode/yudao-ui-go-view) | 基于 Vue3 + naive-ui 实现的大屏报表 | | |
| 68 | 68 | |
| 69 | 69 | ## 🐰 分支说明 |
| 70 | 70 | ... | ... |
yudao-ui-admin/src/api/crm/business.js deleted
| 1 | -import request from '@/utils/request' | |
| 2 | - | |
| 3 | -// 创建商机 | |
| 4 | -export function createBusiness(data) { | |
| 5 | - return request({ | |
| 6 | - url: '/crm/business/create', | |
| 7 | - method: 'post', | |
| 8 | - data: data | |
| 9 | - }) | |
| 10 | -} | |
| 11 | - | |
| 12 | -// 更新商机 | |
| 13 | -export function updateBusiness(data) { | |
| 14 | - return request({ | |
| 15 | - url: '/crm/business/update', | |
| 16 | - method: 'put', | |
| 17 | - data: data | |
| 18 | - }) | |
| 19 | -} | |
| 20 | - | |
| 21 | -// 删除商机 | |
| 22 | -export function deleteBusiness(id) { | |
| 23 | - return request({ | |
| 24 | - url: '/crm/business/delete?id=' + id, | |
| 25 | - method: 'delete' | |
| 26 | - }) | |
| 27 | -} | |
| 28 | - | |
| 29 | -// 获得商机 | |
| 30 | -export function getBusiness(id) { | |
| 31 | - return request({ | |
| 32 | - url: '/crm/business/get?id=' + id, | |
| 33 | - method: 'get' | |
| 34 | - }) | |
| 35 | -} | |
| 36 | - | |
| 37 | -// 获得商机分页 | |
| 38 | -export function getBusinessPage(query) { | |
| 39 | - return request({ | |
| 40 | - url: '/crm/business/page', | |
| 41 | - method: 'get', | |
| 42 | - params: query | |
| 43 | - }) | |
| 44 | -} | |
| 45 | - | |
| 46 | -// 导出商机 Excel | |
| 47 | -export function exportBusinessExcel(query) { | |
| 48 | - return request({ | |
| 49 | - url: '/crm/business/export-excel', | |
| 50 | - method: 'get', | |
| 51 | - params: query, | |
| 52 | - responseType: 'blob' | |
| 53 | - }) | |
| 54 | -} |
yudao-ui-admin/src/api/crm/businessStatus.js deleted
| 1 | -import request from '@/utils/request' | |
| 2 | - | |
| 3 | -// 创建商机状态 | |
| 4 | -export function createBusinessStatus(data) { | |
| 5 | - return request({ | |
| 6 | - url: '/crm/business-status/create', | |
| 7 | - method: 'post', | |
| 8 | - data: data | |
| 9 | - }) | |
| 10 | -} | |
| 11 | - | |
| 12 | -// 更新商机状态 | |
| 13 | -export function updateBusinessStatus(data) { | |
| 14 | - return request({ | |
| 15 | - url: '/crm/business-status/update', | |
| 16 | - method: 'put', | |
| 17 | - data: data | |
| 18 | - }) | |
| 19 | -} | |
| 20 | - | |
| 21 | -// 删除商机状态 | |
| 22 | -export function deleteBusinessStatus(id) { | |
| 23 | - return request({ | |
| 24 | - url: '/crm/business-status/delete?id=' + id, | |
| 25 | - method: 'delete' | |
| 26 | - }) | |
| 27 | -} | |
| 28 | - | |
| 29 | -// 获得商机状态 | |
| 30 | -export function getBusinessStatus(id) { | |
| 31 | - return request({ | |
| 32 | - url: '/crm/business-status/get?id=' + id, | |
| 33 | - method: 'get' | |
| 34 | - }) | |
| 35 | -} | |
| 36 | - | |
| 37 | -// 获得商机状态分页 | |
| 38 | -export function getBusinessStatusPage(query) { | |
| 39 | - return request({ | |
| 40 | - url: '/crm/business-status/page', | |
| 41 | - method: 'get', | |
| 42 | - params: query | |
| 43 | - }) | |
| 44 | -} | |
| 45 | - | |
| 46 | -// 导出商机状态 Excel | |
| 47 | -export function exportBusinessStatusExcel(query) { | |
| 48 | - return request({ | |
| 49 | - url: '/crm/business-status/export-excel', | |
| 50 | - method: 'get', | |
| 51 | - params: query, | |
| 52 | - responseType: 'blob' | |
| 53 | - }) | |
| 54 | -} | |
| 55 | - | |
| 56 | -// 根据类型ID获取商机状态信息列表 | |
| 57 | -export function getBusinessStatusListByTypeId(typeId) { | |
| 58 | - return request({ | |
| 59 | - url: '/crm/business-status/get-simple-list?typeId=' + typeId, | |
| 60 | - method: 'get' | |
| 61 | - }) | |
| 62 | -} | |
| 63 | - | |
| 64 | -// 获取商机状态信息列表 | |
| 65 | -export function getBusinessStatusList() { | |
| 66 | - return request({ | |
| 67 | - url: '/crm/business-status/get-all-list', | |
| 68 | - method: 'get' | |
| 69 | - }) | |
| 70 | -} |
yudao-ui-admin/src/api/crm/businessStatusType.js deleted
| 1 | -import request from '@/utils/request' | |
| 2 | - | |
| 3 | -// 创建商机状态类型 | |
| 4 | -export function createBusinessStatusType(data) { | |
| 5 | - return request({ | |
| 6 | - url: '/crm/business-status-type/create', | |
| 7 | - method: 'post', | |
| 8 | - data: data | |
| 9 | - }) | |
| 10 | -} | |
| 11 | - | |
| 12 | -// 更新商机状态类型 | |
| 13 | -export function updateBusinessStatusType(data) { | |
| 14 | - return request({ | |
| 15 | - url: '/crm/business-status-type/update', | |
| 16 | - method: 'put', | |
| 17 | - data: data | |
| 18 | - }) | |
| 19 | -} | |
| 20 | - | |
| 21 | -// 删除商机状态类型 | |
| 22 | -export function deleteBusinessStatusType(id) { | |
| 23 | - return request({ | |
| 24 | - url: '/crm/business-status-type/delete?id=' + id, | |
| 25 | - method: 'delete' | |
| 26 | - }) | |
| 27 | -} | |
| 28 | - | |
| 29 | -// 获得商机状态类型 | |
| 30 | -export function getBusinessStatusType(id) { | |
| 31 | - return request({ | |
| 32 | - url: '/crm/business-status-type/get?id=' + id, | |
| 33 | - method: 'get' | |
| 34 | - }) | |
| 35 | -} | |
| 36 | - | |
| 37 | -// 获得商机状态类型分页 | |
| 38 | -export function getBusinessStatusTypePage(query) { | |
| 39 | - return request({ | |
| 40 | - url: '/crm/business-status-type/page', | |
| 41 | - method: 'get', | |
| 42 | - params: query | |
| 43 | - }) | |
| 44 | -} | |
| 45 | - | |
| 46 | -// 导出商机状态类型 Excel | |
| 47 | -export function exportBusinessStatusTypeExcel(query) { | |
| 48 | - return request({ | |
| 49 | - url: '/crm/business-status-type/export-excel', | |
| 50 | - method: 'get', | |
| 51 | - params: query, | |
| 52 | - responseType: 'blob' | |
| 53 | - }) | |
| 54 | -} | |
| 55 | - | |
| 56 | -// 获取商机状态类型信息列表 | |
| 57 | -export function getBusinessStatusTypeList() { | |
| 58 | - return request({ | |
| 59 | - url: '/crm/business-status-type/get-simple-list', | |
| 60 | - method: 'get' | |
| 61 | - }) | |
| 62 | -} |
yudao-ui-admin/src/api/crm/contact/contact.js deleted
| 1 | -import request from '@/utils/request' | |
| 2 | - | |
| 3 | -// 创建crm联系人 | |
| 4 | -export function createContact(data) { | |
| 5 | - return request({ | |
| 6 | - url: '/crm/contact/create', | |
| 7 | - method: 'post', | |
| 8 | - data: data | |
| 9 | - }) | |
| 10 | -} | |
| 11 | - | |
| 12 | -// 更新crm联系人 | |
| 13 | -export function updateContact(data) { | |
| 14 | - return request({ | |
| 15 | - url: '/crm/contact/update', | |
| 16 | - method: 'put', | |
| 17 | - data: data | |
| 18 | - }) | |
| 19 | -} | |
| 20 | - | |
| 21 | -// 删除crm联系人 | |
| 22 | -export function deleteContact(id) { | |
| 23 | - return request({ | |
| 24 | - url: '/crm/contact/delete?id=' + id, | |
| 25 | - method: 'delete' | |
| 26 | - }) | |
| 27 | -} | |
| 28 | - | |
| 29 | -// 获得crm联系人 | |
| 30 | -export function getContact(id) { | |
| 31 | - return request({ | |
| 32 | - url: '/crm/contact/get?id=' + id, | |
| 33 | - method: 'get' | |
| 34 | - }) | |
| 35 | -} | |
| 36 | - | |
| 37 | -// 获得crm联系人分页 | |
| 38 | -export function getContactPage(query) { | |
| 39 | - return request({ | |
| 40 | - url: '/crm/contact/page', | |
| 41 | - method: 'get', | |
| 42 | - params: query | |
| 43 | - }) | |
| 44 | -} | |
| 45 | - | |
| 46 | -// 导出crm联系人 Excel | |
| 47 | -export function exportContactExcel(query) { | |
| 48 | - return request({ | |
| 49 | - url: '/crm/contact/export-excel', | |
| 50 | - method: 'get', | |
| 51 | - params: query, | |
| 52 | - responseType: 'blob' | |
| 53 | - }) | |
| 54 | -} |
yudao-ui-admin/src/views/crm/business/index.vue deleted
| 1 | -<template> | |
| 2 | - <div class="app-container"> | |
| 3 | - | |
| 4 | - <!-- 搜索工作栏 --> | |
| 5 | - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> | |
| 6 | - <el-form-item label="商机名称" prop="name"> | |
| 7 | - <el-input v-model="queryParams.name" placeholder="请输入商机名称" clearable @keyup.enter.native="handleQuery"/> | |
| 8 | - </el-form-item> | |
| 9 | - <el-form-item> | |
| 10 | - <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> | |
| 11 | - <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> | |
| 12 | - </el-form-item> | |
| 13 | - </el-form> | |
| 14 | - | |
| 15 | - <!-- 操作工具栏 --> | |
| 16 | - <el-row :gutter="10" class="mb8"> | |
| 17 | - <el-col :span="1.5"> | |
| 18 | - <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" | |
| 19 | - v-hasPermi="['crm:business:create']">新增</el-button> | |
| 20 | - </el-col> | |
| 21 | - <el-col :span="1.5"> | |
| 22 | - <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" | |
| 23 | - v-hasPermi="['crm:business:export']">导出</el-button> | |
| 24 | - </el-col> | |
| 25 | - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> | |
| 26 | - </el-row> | |
| 27 | - | |
| 28 | - <!-- 列表 --> | |
| 29 | - <el-table v-loading="loading" :data="list"> | |
| 30 | - <el-table-column label="商机名称" align="center" prop="name" /> | |
| 31 | - <el-table-column label="客户名称" align="center" prop="customerId" /> | |
| 32 | - <el-table-column label="商机金额" align="center" prop="price" /> | |
| 33 | - <el-table-column label="预计成交日期" align="center" prop="dealTime" width="180"> | |
| 34 | - <template v-slot="scope"> | |
| 35 | - <span>{{ parseTime(scope.row.dealTime) }}</span> | |
| 36 | - </template> | |
| 37 | - </el-table-column> | |
| 38 | - <el-table-column label="备注" align="center" prop="remark" /> | |
| 39 | - <el-table-column label="商机状态类型" align="center" prop="statusTypeId" width="120"> | |
| 40 | - <template v-slot="scope"> | |
| 41 | - <el-tag> {{getBusinessStatusTypeName(scope.row.statusTypeId)}} </el-tag> | |
| 42 | - </template> | |
| 43 | - </el-table-column> | |
| 44 | - <el-table-column label="商机状态" align="center" prop="statusId" width="100"> | |
| 45 | - <template v-slot="scope"> | |
| 46 | - <el-tag> {{getBusinessStatusName(scope.row.statusId)}} </el-tag> | |
| 47 | - </template> | |
| 48 | - </el-table-column> | |
| 49 | - <el-table-column label="更新时间" align="center" prop="updateTime" width="180"> | |
| 50 | - <template v-slot="scope"> | |
| 51 | - <span>{{ parseTime(scope.row.updateTime) }}</span> | |
| 52 | - </template> | |
| 53 | - </el-table-column> | |
| 54 | - <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | |
| 55 | - <template v-slot="scope"> | |
| 56 | - <span>{{ parseTime(scope.row.createTime) }}</span> | |
| 57 | - </template> | |
| 58 | - </el-table-column> | |
| 59 | - <el-table-column label="负责人" align="center" prop="ownerUserId" /> | |
| 60 | - <el-table-column label="创建人" align="center" prop="creator" /> | |
| 61 | - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | |
| 62 | - <template v-slot="scope"> | |
| 63 | - <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" | |
| 64 | - v-hasPermi="['crm:business:update']">修改</el-button> | |
| 65 | - <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" | |
| 66 | - v-hasPermi="['crm:business:delete']">删除</el-button> | |
| 67 | - </template> | |
| 68 | - </el-table-column> | |
| 69 | - </el-table> | |
| 70 | - <!-- 分页组件 --> | |
| 71 | - <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" | |
| 72 | - @pagination="getList"/> | |
| 73 | - | |
| 74 | - <!-- 对话框(添加 / 修改) --> | |
| 75 | - <el-dialog :title="title" :visible.sync="open" width="500px" v-dialogDrag append-to-body> | |
| 76 | - <el-form ref="form" :model="form" :rules="rules" label-width="100px"> | |
| 77 | - <el-form-item label="商机名称" prop="name"> | |
| 78 | - <el-input v-model="form.name" placeholder="请输入商机名称" /> | |
| 79 | - </el-form-item> | |
| 80 | - <el-form-item label="客户编号" prop="customerId"> | |
| 81 | - <el-input v-model="form.customerId" placeholder="请输入客户编号" /> | |
| 82 | - </el-form-item> | |
| 83 | - <el-form-item label="商机状态类型" prop="statusTypeId"> | |
| 84 | - <el-select v-model="form.statusTypeId" placeholder="请选择商机状态类型" clearable size="small" @change="changeBusinessStatusType"> | |
| 85 | - <el-option v-for="item in businessStatusTypeList" :key="item.id" :label="item.name" :value="item.id"/> | |
| 86 | - </el-select> | |
| 87 | - </el-form-item> | |
| 88 | - <el-form-item label="商机状态" prop="statusId"> | |
| 89 | - <el-select v-model="form.statusId" placeholder="请选择商机状态" clearable size="small"> | |
| 90 | - <el-option v-for="item in businessStatusList" :key="item.id" :label="item.name" :value="item.id"/> | |
| 91 | - </el-select> | |
| 92 | - </el-form-item> | |
| 93 | - <el-form-item label="预计成交日期" prop="dealTime"> | |
| 94 | - <el-date-picker clearable v-model="form.dealTime" type="date" value-format="timestamp" placeholder="选择预计成交日期" /> | |
| 95 | - </el-form-item> | |
| 96 | - <el-form-item label="商机金额" prop="price"> | |
| 97 | - <el-input v-model="form.price" placeholder="请输入商机金额" /> | |
| 98 | - </el-form-item> | |
| 99 | - <el-form-item label="整单折扣(%)" prop="discountPercent"> | |
| 100 | - <el-input v-model="form.discountPercent" placeholder="请输入整单折扣" /> | |
| 101 | - </el-form-item> | |
| 102 | - <el-form-item label="产品总金额" prop="productPrice"> | |
| 103 | - <el-input v-model="form.productPrice" placeholder="请输入产品总金额" /> | |
| 104 | - </el-form-item> | |
| 105 | - <el-form-item label="备注" prop="remark"> | |
| 106 | - <el-input v-model="form.remark" placeholder="请输入备注" /> | |
| 107 | - </el-form-item> | |
| 108 | - </el-form> | |
| 109 | - <div slot="footer" class="dialog-footer"> | |
| 110 | - <el-button type="primary" @click="submitForm">确 定</el-button> | |
| 111 | - <el-button @click="cancel">取 消</el-button> | |
| 112 | - </div> | |
| 113 | - </el-dialog> | |
| 114 | - </div> | |
| 115 | -</template> | |
| 116 | - | |
| 117 | -<script> | |
| 118 | -import { createBusiness, updateBusiness, deleteBusiness, getBusiness, getBusinessPage, exportBusinessExcel } from "@/api/crm/business"; | |
| 119 | -import { getBusinessStatusListByTypeId, getBusinessStatusList } from "@/api/crm/businessStatus"; | |
| 120 | -import { getBusinessStatusTypeList } from "@/api/crm/businessStatusType"; | |
| 121 | - | |
| 122 | -export default { | |
| 123 | - name: "Business", | |
| 124 | - components: { | |
| 125 | - }, | |
| 126 | - data() { | |
| 127 | - return { | |
| 128 | - // 遮罩层 | |
| 129 | - loading: true, | |
| 130 | - // 导出遮罩层 | |
| 131 | - exportLoading: false, | |
| 132 | - // 显示搜索条件 | |
| 133 | - showSearch: true, | |
| 134 | - // 总条数 | |
| 135 | - total: 0, | |
| 136 | - // 商机列表 | |
| 137 | - list: [], | |
| 138 | - // 根据类型ID获取的商机状态列表 | |
| 139 | - businessStatusList: [], | |
| 140 | - // 所有商机状态列表 | |
| 141 | - businessStatusAllList: [], | |
| 142 | - // 商机状态类型列表 | |
| 143 | - businessStatusTypeList: [], | |
| 144 | - // 弹出层标题 | |
| 145 | - title: "", | |
| 146 | - // 是否显示弹出层 | |
| 147 | - open: false, | |
| 148 | - // 查询参数 | |
| 149 | - queryParams: { | |
| 150 | - pageNo: 1, | |
| 151 | - pageSize: 10, | |
| 152 | - name: null, | |
| 153 | - statusTypeId: null, | |
| 154 | - statusId: null, | |
| 155 | - contactNextTime: [], | |
| 156 | - customerId: null, | |
| 157 | - dealTime: [], | |
| 158 | - price: null, | |
| 159 | - discountPercent: null, | |
| 160 | - productPrice: null, | |
| 161 | - remark: null, | |
| 162 | - ownerUserId: null, | |
| 163 | - createTime: [], | |
| 164 | - roUserIds: null, | |
| 165 | - rwUserIds: null, | |
| 166 | - endStatus: null, | |
| 167 | - endRemark: null, | |
| 168 | - contactLastTime: [], | |
| 169 | - followUpStatus: null, | |
| 170 | - }, | |
| 171 | - // 表单参数 | |
| 172 | - form: {}, | |
| 173 | - // 表单校验 | |
| 174 | - rules: { | |
| 175 | - name: [{ required: true, message: "商机名称不能为空", trigger: "blur" }], | |
| 176 | - customerId: [{ required: true, message: "客户编号不能为空", trigger: "blur" }], | |
| 177 | - roUserIds: [{ required: true, message: "只读权限的用户编号数组不能为空", trigger: "blur" }], | |
| 178 | - rwUserIds: [{ required: true, message: "读写权限的用户编号数组不能为空", trigger: "blur" }], | |
| 179 | - endStatus: [{ required: true, message: "1赢单2输单3无效不能为空", trigger: "blur" }], | |
| 180 | - } | |
| 181 | - }; | |
| 182 | - }, | |
| 183 | - created() { | |
| 184 | - this.getList(); | |
| 185 | - }, | |
| 186 | - methods: { | |
| 187 | - /** 查询列表 */ | |
| 188 | - getList() { | |
| 189 | - this.loading = true; | |
| 190 | - // 执行查询 | |
| 191 | - getBusinessPage(this.queryParams).then(response => { | |
| 192 | - this.list = response.data.list; | |
| 193 | - this.total = response.data.total; | |
| 194 | - this.loading = false; | |
| 195 | - }); | |
| 196 | - //查询商机状态类型集合 | |
| 197 | - getBusinessStatusTypeList().then(response => { | |
| 198 | - this.businessStatusTypeList = response.data; | |
| 199 | - }); | |
| 200 | - //查询商机状态类型集合 | |
| 201 | - getBusinessStatusList().then(response => { | |
| 202 | - this.businessStatusAllList = response.data; | |
| 203 | - }); | |
| 204 | - | |
| 205 | - }, | |
| 206 | - /** 取消按钮 */ | |
| 207 | - cancel() { | |
| 208 | - this.open = false; | |
| 209 | - this.reset(); | |
| 210 | - }, | |
| 211 | - /** 表单重置 */ | |
| 212 | - reset() { | |
| 213 | - this.form = { | |
| 214 | - id: undefined, | |
| 215 | - name: undefined, | |
| 216 | - statusTypeId: undefined, | |
| 217 | - statusId: undefined, | |
| 218 | - contactNextTime: undefined, | |
| 219 | - customerId: undefined, | |
| 220 | - dealTime: undefined, | |
| 221 | - price: undefined, | |
| 222 | - discountPercent: undefined, | |
| 223 | - productPrice: undefined, | |
| 224 | - remark: undefined, | |
| 225 | - ownerUserId: undefined, | |
| 226 | - roUserIds: undefined, | |
| 227 | - rwUserIds: undefined, | |
| 228 | - endStatus: undefined, | |
| 229 | - endRemark: undefined, | |
| 230 | - contactLastTime: undefined, | |
| 231 | - followUpStatus: undefined, | |
| 232 | - }; | |
| 233 | - this.resetForm("form"); | |
| 234 | - }, | |
| 235 | - /** 搜索按钮操作 */ | |
| 236 | - handleQuery() { | |
| 237 | - this.queryParams.pageNo = 1; | |
| 238 | - this.getList(); | |
| 239 | - }, | |
| 240 | - /** 重置按钮操作 */ | |
| 241 | - resetQuery() { | |
| 242 | - this.resetForm("queryForm"); | |
| 243 | - this.handleQuery(); | |
| 244 | - }, | |
| 245 | - /** 新增按钮操作 */ | |
| 246 | - handleAdd() { | |
| 247 | - this.reset(); | |
| 248 | - this.open = true; | |
| 249 | - this.title = "添加商机"; | |
| 250 | - }, | |
| 251 | - /** 修改按钮操作 */ | |
| 252 | - handleUpdate(row) { | |
| 253 | - this.reset(); | |
| 254 | - const id = row.id; | |
| 255 | - getBusiness(id).then(response => { | |
| 256 | - this.form = response.data; | |
| 257 | - this.open = true; | |
| 258 | - this.title = "修改商机"; | |
| 259 | - }); | |
| 260 | - }, | |
| 261 | - /** 提交按钮 */ | |
| 262 | - submitForm() { | |
| 263 | - this.$refs["form"].validate(valid => { | |
| 264 | - if (!valid) { | |
| 265 | - return; | |
| 266 | - } | |
| 267 | - // 修改的提交 | |
| 268 | - if (this.form.id != null) { | |
| 269 | - updateBusiness(this.form).then(response => { | |
| 270 | - this.$modal.msgSuccess("修改成功"); | |
| 271 | - this.open = false; | |
| 272 | - this.getList(); | |
| 273 | - }); | |
| 274 | - return; | |
| 275 | - } | |
| 276 | - // 添加的提交 | |
| 277 | - createBusiness(this.form).then(response => { | |
| 278 | - this.$modal.msgSuccess("新增成功"); | |
| 279 | - this.open = false; | |
| 280 | - this.getList(); | |
| 281 | - }); | |
| 282 | - }); | |
| 283 | - }, | |
| 284 | - /** 删除按钮操作 */ | |
| 285 | - handleDelete(row) { | |
| 286 | - const id = row.id; | |
| 287 | - this.$modal.confirm('是否确认删除商机编号为"' + id + '"的数据项?').then(function() { | |
| 288 | - return deleteBusiness(id); | |
| 289 | - }).then(() => { | |
| 290 | - this.getList(); | |
| 291 | - this.$modal.msgSuccess("删除成功"); | |
| 292 | - }).catch(() => {}); | |
| 293 | - }, | |
| 294 | - /** 导出按钮操作 */ | |
| 295 | - handleExport() { | |
| 296 | - // 处理查询参数 | |
| 297 | - let params = {...this.queryParams}; | |
| 298 | - params.pageNo = undefined; | |
| 299 | - params.pageSize = undefined; | |
| 300 | - this.$modal.confirm('是否确认导出所有商机数据项?').then(() => { | |
| 301 | - this.exportLoading = true; | |
| 302 | - return exportBusinessExcel(params); | |
| 303 | - }).then(response => { | |
| 304 | - this.$download.excel(response, '商机.xls'); | |
| 305 | - this.exportLoading = false; | |
| 306 | - }).catch(() => {}); | |
| 307 | - }, | |
| 308 | - /** 选择商机状态类型事件 */ | |
| 309 | - changeBusinessStatusType (id) { | |
| 310 | - //查询商机状态集合 | |
| 311 | - getBusinessStatusListByTypeId(id).then(response => { | |
| 312 | - this.businessStatusList = response.data; | |
| 313 | - }); | |
| 314 | - }, | |
| 315 | - /** 商机状态类型名格式化 */ | |
| 316 | - getBusinessStatusTypeName(typeId) { | |
| 317 | - for (const item of this.businessStatusTypeList) { | |
| 318 | - if (item.id === typeId) { | |
| 319 | - return item.name; | |
| 320 | - } | |
| 321 | - } | |
| 322 | - return '未知'; | |
| 323 | - }, | |
| 324 | - /** 商机状态名格式化 */ | |
| 325 | - getBusinessStatusName(id) { | |
| 326 | - for (const item of this.businessStatusAllList) { | |
| 327 | - if (item.id === id) { | |
| 328 | - return item.name; | |
| 329 | - } | |
| 330 | - } | |
| 331 | - return '未知'; | |
| 332 | - } | |
| 333 | - } | |
| 334 | -}; | |
| 335 | -</script> |
yudao-ui-admin/src/views/crm/contact/index.vue deleted
| 1 | -<template> | |
| 2 | - <div class="app-container"> | |
| 3 | - | |
| 4 | - <!-- 搜索工作栏 --> | |
| 5 | - <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="110px"> | |
| 6 | - <el-form-item label="姓名" prop="name"> | |
| 7 | - <el-input v-model="queryParams.name" placeholder="请输入联系人名称" clearable @keyup.enter.native="handleQuery"/> | |
| 8 | - </el-form-item> | |
| 9 | - <el-form-item label="下次联系时间" prop="nextTime"> | |
| 10 | - <el-date-picker v-model="queryParams.nextTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange" | |
| 11 | - range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" /> | |
| 12 | - </el-form-item> | |
| 13 | - <el-form-item label="手机号" prop="mobile"> | |
| 14 | - <el-input v-model="queryParams.mobile" placeholder="请输入手机号" clearable @keyup.enter.native="handleQuery"/> | |
| 15 | - </el-form-item> | |
| 16 | -<!-- <el-form-item label="电话" prop="telephone">--> | |
| 17 | -<!-- <el-input v-model="queryParams.telephone" placeholder="请输入电话" clearable @keyup.enter.native="handleQuery"/>--> | |
| 18 | -<!-- </el-form-item>--> | |
| 19 | -<!-- <el-form-item label="电子邮箱" prop="email">--> | |
| 20 | -<!-- <el-input v-model="queryParams.email" placeholder="请输入电子邮箱" clearable @keyup.enter.native="handleQuery"/>--> | |
| 21 | -<!-- </el-form-item>--> | |
| 22 | -<!-- <el-form-item label="职务" prop="post">--> | |
| 23 | -<!-- <el-input v-model="queryParams.post" placeholder="请输入职务" clearable @keyup.enter.native="handleQuery"/>--> | |
| 24 | -<!-- </el-form-item>--> | |
| 25 | - <el-form-item label="客户编号" prop="customerId"> | |
| 26 | - <el-input v-model="queryParams.customerId" placeholder="请输入客户编号" clearable @keyup.enter.native="handleQuery"/> | |
| 27 | - </el-form-item> | |
| 28 | -<!-- <el-form-item label="地址" prop="address">--> | |
| 29 | -<!-- <el-input v-model="queryParams.address" placeholder="请输入地址" clearable @keyup.enter.native="handleQuery"/>--> | |
| 30 | -<!-- </el-form-item>--> | |
| 31 | -<!-- <el-form-item label="备注" prop="remark">--> | |
| 32 | -<!-- <el-input v-model="queryParams.remark" placeholder="请输入备注" clearable @keyup.enter.native="handleQuery"/>--> | |
| 33 | -<!-- </el-form-item>--> | |
| 34 | - <el-form-item label="负责人用户编号" prop="ownerUserId"> | |
| 35 | - <el-input v-model="queryParams.ownerUserId" placeholder="请输入负责人用户编号" clearable @keyup.enter.native="handleQuery"/> | |
| 36 | - </el-form-item> | |
| 37 | -<!-- <el-form-item label="创建时间" prop="createTime">--> | |
| 38 | -<!-- <el-date-picker v-model="queryParams.createTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange"--> | |
| 39 | -<!-- range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" />--> | |
| 40 | -<!-- </el-form-item>--> | |
| 41 | -<!-- <el-form-item label="最后跟进时间" prop="lastTime">--> | |
| 42 | -<!-- <el-date-picker v-model="queryParams.lastTime" style="width: 240px" value-format="yyyy-MM-dd HH:mm:ss" type="daterange"--> | |
| 43 | -<!-- range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:59:59']" />--> | |
| 44 | -<!-- </el-form-item>--> | |
| 45 | -<!-- <el-form-item label="更新人" prop="updator">--> | |
| 46 | -<!-- <el-input v-model="queryParams.updator" placeholder="请输入更新人" clearable @keyup.enter.native="handleQuery"/>--> | |
| 47 | -<!-- </el-form-item>--> | |
| 48 | - <el-form-item> | |
| 49 | - <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button> | |
| 50 | - <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button> | |
| 51 | - </el-form-item> | |
| 52 | - </el-form> | |
| 53 | - | |
| 54 | - <!-- 操作工具栏 --> | |
| 55 | - <el-row :gutter="10" class="mb8"> | |
| 56 | - <el-col :span="1.5"> | |
| 57 | - <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" | |
| 58 | - v-hasPermi="['crm:contact:create']">新增</el-button> | |
| 59 | - </el-col> | |
| 60 | - <el-col :span="1.5"> | |
| 61 | - <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" :loading="exportLoading" | |
| 62 | - v-hasPermi="['crm:contact:export']">导出</el-button> | |
| 63 | - </el-col> | |
| 64 | - <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> | |
| 65 | - </el-row> | |
| 66 | - | |
| 67 | - <!-- 列表 --> | |
| 68 | - <el-table v-loading="loading" :data="list"> | |
| 69 | - <el-table-column label="姓名" align="center" prop="name" /> | |
| 70 | - <el-table-column label="下次联系时间" align="center" prop="nextTime" > | |
| 71 | - <template v-slot="scope"> | |
| 72 | - <span>{{ parseTime(scope.row.nextTime) }}</span> | |
| 73 | - </template> | |
| 74 | - </el-table-column> | |
| 75 | - <el-table-column label="手机号" align="center" prop="mobile" /> | |
| 76 | - <el-table-column label="电话" align="center" prop="telephone" /> | |
| 77 | - <el-table-column label="电子邮箱" align="center" prop="email" /> | |
| 78 | - <el-table-column label="职务" align="center" prop="post" /> | |
| 79 | - <el-table-column label="客户编号" align="center" prop="customerId" /> | |
| 80 | - <el-table-column label="地址" align="center" prop="address" /> | |
| 81 | - <el-table-column label="备注" align="center" prop="remark" /> | |
| 82 | - <el-table-column label="负责人用户编号" align="center" prop="ownerUserId" /> | |
| 83 | - <el-table-column label="创建时间" align="center" prop="createTime" width="180"> | |
| 84 | - <template v-slot="scope"> | |
| 85 | - <span>{{ parseTime(scope.row.createTime) }}</span> | |
| 86 | - </template> | |
| 87 | - </el-table-column> | |
| 88 | - <el-table-column label="最后跟进时间" align="center" prop="lastTime" width="180"> | |
| 89 | - <template v-slot="scope"> | |
| 90 | - <span>{{ parseTime(scope.row.lastTime) }}</span> | |
| 91 | - </template> | |
| 92 | - </el-table-column> | |
| 93 | - <el-table-column label="更新人" align="center" prop="updator" /> | |
| 94 | - <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> | |
| 95 | - <template v-slot="scope"> | |
| 96 | - <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" | |
| 97 | - v-hasPermi="['crm:contact:update']">修改</el-button> | |
| 98 | - <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" | |
| 99 | - v-hasPermi="['crm:contact:delete']">删除</el-button> | |
| 100 | - </template> | |
| 101 | - </el-table-column> | |
| 102 | - </el-table> | |
| 103 | - <!-- 分页组件 --> | |
| 104 | - <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize" | |
| 105 | - @pagination="getList"/> | |
| 106 | - | |
| 107 | - <!-- 对话框(添加 / 修改) --> | |
| 108 | - <el-dialog :title="title" :visible.sync="open" width="500px" v-dialogDrag append-to-body> | |
| 109 | - <el-form ref="form" :model="form" :rules="rules" label-width="110px"> | |
| 110 | - <el-form-item label="姓名" prop="name"> | |
| 111 | - <el-input v-model="form.name" placeholder="请输入联系人名称" /> | |
| 112 | - </el-form-item> | |
| 113 | - <el-form-item label="下次联系时间" prop="nextTime"> | |
| 114 | - <el-date-picker clearable v-model="form.nextTime" type="date" value-format="timestamp" placeholder="选择下次联系时间" /> | |
| 115 | - </el-form-item> | |
| 116 | - <el-form-item label="手机号" prop="mobile"> | |
| 117 | - <el-input v-model="form.mobile" placeholder="请输入手机号" /> | |
| 118 | - </el-form-item> | |
| 119 | - <el-form-item label="电话" prop="telephone"> | |
| 120 | - <el-input v-model="form.telephone" placeholder="请输入电话" /> | |
| 121 | - </el-form-item> | |
| 122 | - <el-form-item label="电子邮箱" prop="email"> | |
| 123 | - <el-input v-model="form.email" placeholder="请输入电子邮箱" /> | |
| 124 | - </el-form-item> | |
| 125 | - <el-form-item label="职务" prop="post"> | |
| 126 | - <el-input v-model="form.post" placeholder="请输入职务" /> | |
| 127 | - </el-form-item> | |
| 128 | - <el-form-item label="客户编号" prop="customerId"> | |
| 129 | - <el-input v-model="form.customerId" placeholder="请输入客户编号" /> | |
| 130 | - </el-form-item> | |
| 131 | - <el-form-item label="地址" prop="address"> | |
| 132 | - <el-input v-model="form.address" placeholder="请输入地址" /> | |
| 133 | - </el-form-item> | |
| 134 | - <el-form-item label="备注" prop="remark"> | |
| 135 | - <el-input v-model="form.remark" placeholder="请输入备注" /> | |
| 136 | - </el-form-item> | |
| 137 | - <el-form-item label="负责人用户编号" prop="ownerUserId"> | |
| 138 | - <el-input v-model="form.ownerUserId" placeholder="请输入负责人用户编号" /> | |
| 139 | - </el-form-item> | |
| 140 | - <el-form-item label="最后跟进时间" prop="lastTime"> | |
| 141 | - <el-date-picker clearable v-model="form.lastTime" type="date" value-format="timestamp" placeholder="选择最后跟进时间" /> | |
| 142 | - </el-form-item> | |
| 143 | - <el-form-item label="更新人" prop="updator"> | |
| 144 | - <el-input v-model="form.updator" placeholder="请输入更新人" /> | |
| 145 | - </el-form-item> | |
| 146 | - </el-form> | |
| 147 | - <div slot="footer" class="dialog-footer"> | |
| 148 | - <el-button type="primary" @click="submitForm">确 定</el-button> | |
| 149 | - <el-button @click="cancel">取 消</el-button> | |
| 150 | - </div> | |
| 151 | - </el-dialog> | |
| 152 | - </div> | |
| 153 | -</template> | |
| 154 | - | |
| 155 | -<script> | |
| 156 | -import { createContact, updateContact, deleteContact, getContact, getContactPage, exportContactExcel } from "@/api/crm/contact/contact"; | |
| 157 | - | |
| 158 | -export default { | |
| 159 | - name: "Contact", | |
| 160 | - components: { | |
| 161 | - }, | |
| 162 | - data() { | |
| 163 | - return { | |
| 164 | - // 遮罩层 | |
| 165 | - loading: true, | |
| 166 | - // 导出遮罩层 | |
| 167 | - exportLoading: false, | |
| 168 | - // 显示搜索条件 | |
| 169 | - showSearch: true, | |
| 170 | - // 总条数 | |
| 171 | - total: 0, | |
| 172 | - // crm联系人列表 | |
| 173 | - list: [], | |
| 174 | - // 弹出层标题 | |
| 175 | - title: "", | |
| 176 | - // 是否显示弹出层 | |
| 177 | - open: false, | |
| 178 | - // 查询参数 | |
| 179 | - queryParams: { | |
| 180 | - pageNo: 1, | |
| 181 | - pageSize: 10, | |
| 182 | - name: null, | |
| 183 | - nextTime: [], | |
| 184 | - mobile: null, | |
| 185 | - telephone: null, | |
| 186 | - email: null, | |
| 187 | - post: null, | |
| 188 | - customerId: null, | |
| 189 | - address: null, | |
| 190 | - remark: null, | |
| 191 | - ownerUserId: null, | |
| 192 | - createTime: [], | |
| 193 | - lastTime: [], | |
| 194 | - updator: null, | |
| 195 | - }, | |
| 196 | - // 表单参数 | |
| 197 | - form: {}, | |
| 198 | - // 表单校验 | |
| 199 | - rules: { | |
| 200 | - } | |
| 201 | - }; | |
| 202 | - }, | |
| 203 | - created() { | |
| 204 | - this.getList(); | |
| 205 | - }, | |
| 206 | - methods: { | |
| 207 | - /** 查询列表 */ | |
| 208 | - getList() { | |
| 209 | - this.loading = true; | |
| 210 | - // 执行查询 | |
| 211 | - getContactPage(this.queryParams).then(response => { | |
| 212 | - this.list = response.data.list; | |
| 213 | - this.total = response.data.total; | |
| 214 | - this.loading = false; | |
| 215 | - }); | |
| 216 | - }, | |
| 217 | - /** 取消按钮 */ | |
| 218 | - cancel() { | |
| 219 | - this.open = false; | |
| 220 | - this.reset(); | |
| 221 | - }, | |
| 222 | - /** 表单重置 */ | |
| 223 | - reset() { | |
| 224 | - this.form = { | |
| 225 | - id: undefined, | |
| 226 | - name: undefined, | |
| 227 | - nextTime: undefined, | |
| 228 | - mobile: undefined, | |
| 229 | - telephone: undefined, | |
| 230 | - email: undefined, | |
| 231 | - post: undefined, | |
| 232 | - customerId: undefined, | |
| 233 | - address: undefined, | |
| 234 | - remark: undefined, | |
| 235 | - ownerUserId: undefined, | |
| 236 | - lastTime: undefined, | |
| 237 | - updator: undefined, | |
| 238 | - }; | |
| 239 | - this.resetForm("form"); | |
| 240 | - }, | |
| 241 | - /** 搜索按钮操作 */ | |
| 242 | - handleQuery() { | |
| 243 | - this.queryParams.pageNo = 1; | |
| 244 | - this.getList(); | |
| 245 | - }, | |
| 246 | - /** 重置按钮操作 */ | |
| 247 | - resetQuery() { | |
| 248 | - this.resetForm("queryForm"); | |
| 249 | - this.handleQuery(); | |
| 250 | - }, | |
| 251 | - /** 新增按钮操作 */ | |
| 252 | - handleAdd() { | |
| 253 | - this.reset(); | |
| 254 | - this.open = true; | |
| 255 | - this.title = "添加联系人"; | |
| 256 | - }, | |
| 257 | - /** 修改按钮操作 */ | |
| 258 | - handleUpdate(row) { | |
| 259 | - this.reset(); | |
| 260 | - const id = row.id; | |
| 261 | - getContact(id).then(response => { | |
| 262 | - this.form = response.data; | |
| 263 | - this.open = true; | |
| 264 | - this.title = "修改联系人"; | |
| 265 | - }); | |
| 266 | - }, | |
| 267 | - /** 提交按钮 */ | |
| 268 | - submitForm() { | |
| 269 | - this.$refs["form"].validate(valid => { | |
| 270 | - if (!valid) { | |
| 271 | - return; | |
| 272 | - } | |
| 273 | - // 修改的提交 | |
| 274 | - if (this.form.id != null) { | |
| 275 | - updateContact(this.form).then(response => { | |
| 276 | - this.$modal.msgSuccess("修改成功"); | |
| 277 | - this.open = false; | |
| 278 | - this.getList(); | |
| 279 | - }); | |
| 280 | - return; | |
| 281 | - } | |
| 282 | - // 添加的提交 | |
| 283 | - createContact(this.form).then(response => { | |
| 284 | - this.$modal.msgSuccess("新增成功"); | |
| 285 | - this.open = false; | |
| 286 | - this.getList(); | |
| 287 | - }); | |
| 288 | - }); | |
| 289 | - }, | |
| 290 | - /** 删除按钮操作 */ | |
| 291 | - handleDelete(row) { | |
| 292 | - const id = row.id; | |
| 293 | - this.$modal.confirm('是否确认删除联系人编号为"' + id + '"的数据项?').then(function() { | |
| 294 | - return deleteContact(id); | |
| 295 | - }).then(() => { | |
| 296 | - this.getList(); | |
| 297 | - this.$modal.msgSuccess("删除成功"); | |
| 298 | - }).catch(() => {}); | |
| 299 | - }, | |
| 300 | - /** 导出按钮操作 */ | |
| 301 | - handleExport() { | |
| 302 | - // 处理查询参数 | |
| 303 | - let params = {...this.queryParams}; | |
| 304 | - params.pageNo = undefined; | |
| 305 | - params.pageSize = undefined; | |
| 306 | - this.$modal.confirm('是否确认导出所有联系人数据项?').then(() => { | |
| 307 | - this.exportLoading = true; | |
| 308 | - return exportContactExcel(params); | |
| 309 | - }).then(response => { | |
| 310 | - this.$download.excel(response, '联系人.xls'); | |
| 311 | - this.exportLoading = false; | |
| 312 | - }).catch(() => {}); | |
| 313 | - } | |
| 314 | - } | |
| 315 | -}; | |
| 316 | -</script> |
yudao-ui-admin-uniapp/README.md renamed to yudao-ui/yudao-ui-admin-uniapp/README.md
yudao-ui-admin-vben/README.md renamed to yudao-ui/yudao-ui-admin-vben/README.md
yudao-ui-admin-vue2/README.md renamed to yudao-ui/yudao-ui-admin-vue2/README.md
yudao-ui-admin-vue3/README.md renamed to yudao-ui/yudao-ui-admin-vue3/README.md
yudao-ui-mall-uniapp/README.md renamed to yudao-ui/yudao-ui-mall-uniapp/README.md