Commit c7ab595460aff1a99155d1fa0f55cb72a982a313

Authored by YunaiV
1 parent bd912761

简化 yudao-ui 目录

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) | [![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