Commit c7ab595460aff1a99155d1fa0f55cb72a982a313

Authored by YunaiV
1 parent bd912761

简化 yudao-ui 目录

README.md
@@ -57,14 +57,14 @@ @@ -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) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vue3/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vue3) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vue3.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vue3) | 基于 Vue3 + element-plus 实现的管理后台 |  
63 -| [yudao-ui-admin-vben](https://gitee.com/yudaocode/yudao-ui-admin-vben) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vben/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vben) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vben.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vben) | 基于 Vue3 + element-plus 实现的管理后台 |  
64 -| [yudao-mall-uniapp](https://gitee.com/yudaocode/yudao-mall-uniapp) | [![Gitee star](https://gitee.com/yudaocode/yudao-mall-uniapp/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-mall-uniapp) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-mall-uniapp.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-mall-uniapp) | 基于 uni-app 实现的商城小程序 |  
65 -| [yudao-ui-admin-vue2](https://gitee.com/yudaocode/yudao-ui-admin-vue2) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vue2/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vue2) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vue2.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vue2) | 基于 Vue2 + element-ui 实现的管理后台 |  
66 -| [yudao-ui-admin-uniapp](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-uniapp/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-uniapp.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-uniapp) | 基于 Vue2 + element-ui 实现的管理后台 |  
67 -| [yudao-ui-go-view](https://gitee.com/yudaocode/yudao-ui-go-view) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-go-view/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-go-view) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-go-view.svg?style=social&label=Stars)](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) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vue3/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vue3) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vue3.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vue3) | 基于 Vue3 + element-plus 实现的管理后台 |
  63 +| [yudao-ui-admin-vben](https://gitee.com/yudaocode/yudao-ui-admin-vben) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vben/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vben) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vben.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vben) | 基于 Vue3 + vben(ant-design-vue) 实现的管理后台 |
  64 +| [yudao-mall-uniapp](https://gitee.com/yudaocode/yudao-mall-uniapp) | [![Gitee star](https://gitee.com/yudaocode/yudao-mall-uniapp/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-mall-uniapp) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-mall-uniapp.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-mall-uniapp) | 基于 uni-app 实现的商城小程序 |
  65 +| [yudao-ui-admin-vue2](https://gitee.com/yudaocode/yudao-ui-admin-vue2) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-vue2/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-vue2) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-vue2.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-vue2) | 基于 Vue2 + element-ui 实现的管理后台 |
  66 +| [yudao-ui-admin-uniapp](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-admin-uniapp/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-admin-uniapp) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-admin-uniapp.svg?style=social&label=Stars)](https://github.com/yudaocode/yudao-ui-admin-uniapp) | 基于 Vue2 + element-ui 实现的管理后台 |
  67 +| [yudao-ui-go-view](https://gitee.com/yudaocode/yudao-ui-go-view) | [![Gitee star](https://gitee.com/yudaocode/yudao-ui-go-view/badge/star.svg?theme=white)](https://gitee.com/yudaocode/yudao-ui-go-view) [![GitHub stars](https://img.shields.io/github/stars/yudaocode/yudao-ui-go-view.svg?style=social&label=Stars)](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