瀏覽代碼

知识库

master
wangxyi 3 天之前
父節點
當前提交
a1e76038a4

+ 1
- 1
src/crud/components/Dialog.operation.vue 查看文件

@@ -223,7 +223,7 @@ const props = defineProps({
formLabelWidth: {
//表单宽度
type: String,
default: '80px',
default: '150px',
},
dialogFormVisible: {
type: Boolean,

+ 1
- 1
src/crud/components/DialogCollapse.operation.vue 查看文件

@@ -248,7 +248,7 @@ const props = defineProps({
formLabelWidth: {
//表单宽度
type: String,
default: '80px',
default: '150px',
},
dialogFormVisible: {
type: Boolean,

+ 3
- 3
src/crud/components/Search.operation.vue 查看文件

@@ -7,6 +7,9 @@
<el-button type="warning" icon="refreshLeft" @click="refreshLeft" class="btn" v-if="isRefreshLeft">
重置
</el-button>
<el-button v-if="isAdd" type="success" icon="Plus" @click="searchAdd(`添加`, {})" class="btn">
添加
</el-button>
<el-upload v-if="isToLead" style="display: inline-block; margin: 0 10px" ref="upload" :data="data"
:action="BaseService.getFileUploadUrl()" @success="onSuccess($event)" accept=".xls, .xlsx" :limit="1" :on-exceed="handleExceed"
:show-file-list="false" :multiple="false">
@@ -18,9 +21,6 @@
<el-button v-if="isTransferMachine" type="primary" icon="Plus" @click="transferMachine" class="btn">
圈存
</el-button>
<el-button v-if="isAdd" type="success" icon="Plus" @click="searchAdd(`添加`, {})" class="btn">
添加
</el-button>
<el-button type="primary" v-if="JSON.stringify(props.export) != '{}' && props.export" icon="Download"
@click="download" class="btn">
导出

+ 1
- 1
src/crud/index.vue 查看文件

@@ -361,7 +361,7 @@ const tableFrom: any = ref(processData ? processData : []) //表单字段
const multipleTableRef = ref() //表单ref(清空全选)
const testData = ref(props.tableData) //表单数据
const dialogFormVisible = ref(false) //表单弹框是否显示
const formLabelWidth = '80px' //默认表单宽度
const formLabelWidth = '150px' //默认表单宽度
const title = ref('添加') //表单标题
const DStart = ref(true) //删除按钮状态
const EStart = ref(true) //编辑按钮状态

+ 76
- 8
src/views/onlineBusinessHall/onlineOperation/afterSaleAudit/index.vue 查看文件

@@ -13,7 +13,9 @@
@refreshLeft="refreshLeft"
@submit="submit"
@add="Add"
@searchAdd="handleAddBtn"
@importData="handleSuccess"
@uploadSuccess="handleUploadSuccess"
>
<template #search>
<el-select
@@ -79,8 +81,8 @@ const route = useRoute()
const crudRef = ref()

//问题类型
const serviceTypeOptinos = ref([])
const serviceType2Optinos = ref([])
const serviceTypeOptinos = ref<any[]>([])
const serviceType2Optinos = ref<any[]>([])

//查询参数
const searchForm = ref<any>({
@@ -126,10 +128,39 @@ function handleDelete(idx: any, row: any) {
function Add() {
typeOption.value = 'add'
}

//新增按钮点击事件
function handleAddBtn(title: any, row: any) {
typeOption.value = 'add'
// 重置文件上传数据
uploadedFiles.value = {
fileNames: [],
fileUrls: []
}
// crud模板会自动打开弹框,这里只需要设置操作类型
}
// 取消
function cancel() {
crudRef.value.reset()
crudRef.value.dialogFormVisible = false
// 重置文件上传数据
uploadedFiles.value = {
fileNames: [],
fileUrls: []
}
}

// 文件上传成功处理
function handleUploadSuccess(response: any) {
console.log('文件上传成功:', response)
if (response && response.data) {
const { fileNames, fileUrls } = response.data
if (fileNames && fileUrls) {
uploadedFiles.value.fileNames = Array.isArray(fileNames) ? fileNames : [fileNames]
uploadedFiles.value.fileUrls = Array.isArray(fileUrls) ? fileUrls : [fileUrls]
}
}
ElMessage.success('文件上传成功')
}
//分页
function handleCurrentChange(val: number) {
@@ -148,11 +179,16 @@ function refreshLeft() {
}
//编辑与添加提交
function submit(data: any) {
let api = '/managew/knowledgebase/add'
let api = '/managew/aftersale/knowledgeBase/afterSaleAudit/add'
if (typeOption.value === 'edit') {
api = '/managew/knowledgebase/updateById'
api = '/managew/aftersale/knowledgeBase/afterSaleAudit/update'
}
data.serviceType = parseInt(data.serviceType)
// 添加文件上传数据 - 写死测试数据
data.fileNames = ['测试文件1.pdf', '测试文件2.docx']
data.fileUrls = ['https://example.com/file1.pdf', 'https://example.com/file2.docx']
BaseService.post(api, data).then((res: any) => {
if (res && res.code === 0) {
let bizContent = res.data
@@ -213,7 +249,7 @@ function getAgencyList() {
if (res && res.code === 0) {
let bizContent = res.data
let data = bizContent || [];
let list = [] as IObject[];
let list = [] as any[];
data.typeList.map((item) => {
list.push({
label: item,
@@ -221,7 +257,7 @@ function getAgencyList() {
})
})
serviceTypeOptinos.value = list;
let list2 = [] as IObject[];
let list2 = [] as any[];
data.type2List.map((item) => {
list2.push({
label: item,
@@ -236,7 +272,12 @@ function getAgencyList() {
}
const feedBackShow = ref(false)
const feedBackType = ref(0)
const currentData = ref({})
const currentData = ref<any>({})
// 文件上传相关
const uploadedFiles = ref<any>({
fileNames: [],
fileUrls: []
})
// 无内容反馈
function handleEmptyFeedback(keys, scope) {
feedBackType.value = keys
@@ -294,6 +335,9 @@ let field = ref({
operateTitle: '操作', //操作栏标题(默认为"")
operateWidth:"200px",
operateFixed: true, //操作栏是否固定(默认false)
dialogWidth: '60%', //弹框宽度
dialogCustom: false, //自定义Dialog
formLabelWidth: '150px', //全局表单label宽度

operate: {
edit: true, //是否编辑(默认true)
@@ -311,6 +355,7 @@ let field = ref({
isToLead: true, //导入
isTemplate: true,
uploadBtnName: '导入',
isAdd: true, //新增按钮

templateUrl:
import.meta.env.VITE_APP_UPLOAD_URL +
@@ -337,6 +382,7 @@ let field = ref({
{
prop: 'staff',
label: '涉及人员',
labelWidth: '150px',
form: {
type: 'input',
required: true,
@@ -345,6 +391,7 @@ let field = ref({
{
prop: 'category',
label: '类别',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -353,14 +400,16 @@ let field = ref({
{
prop: 'level1',
label: '一级',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
},
},
{
prop: 'orderSource',
prop: 'orderSource1',
label: '订单来源',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -369,6 +418,7 @@ let field = ref({
{
prop: 'querySteps',
label: '详细查询位置及步骤',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -377,6 +427,7 @@ let field = ref({
{
prop: 'materials',
label: '资料',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -385,6 +436,7 @@ let field = ref({
{
prop: 'auditResult',
label: '审核结果',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -393,6 +445,7 @@ let field = ref({
{
prop: 'auditNotice',
label: '审核结果(通知)',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -401,14 +454,29 @@ let field = ref({
{
prop: 'auditDeadline',
label: '审核时限',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
},
},
{
label: '附件上传',
prop: 'attachments',
labelWidth: '150px',
form: {
type: 'upload',
multiple: true,
accept: '.pdf,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif',
maxSize: 10, // 10MB
uploadUrl: '/upload', // 上传接口
placeholder: '请选择文件上传',
},
},
{
label: '状态',
prop: 'status',
labelWidth: '150px',
form: {
listData: [
{ value: "ENABLE", label: '启用' },

+ 100
- 30
src/views/onlineBusinessHall/onlineOperation/businessInfo/index.vue 查看文件

@@ -13,7 +13,9 @@
@refreshLeft="refreshLeft"
@submit="submit"
@add="Add"
@searchAdd="handleAddBtn"
@importData="handleSuccess"
@uploadSuccess="handleUploadSuccess"
>
<template #search>
<el-select
@@ -58,7 +60,7 @@ const route = useRoute()
const crudRef = ref()

//问题类型
const serviceTypeOptinos = ref([])
const serviceTypeOptinos = ref<any[]>([])

//查询参数
const searchForm = ref<any>({
@@ -85,7 +87,7 @@ function getAgencyList() {
if (res && res.code === 0) {
let bizContent = res.data
let data = bizContent || [];
let list = [] as IObject[];
let list = [] as any[];
data.typeList.map((item) => {
list.push({
label: item,
@@ -124,10 +126,39 @@ function handleDelete(idx: any, row: any) {
function Add() {
typeOption.value = 'add'
}

//新增按钮点击事件
function handleAddBtn(title: any, row: any) {
typeOption.value = 'add'
// 重置文件上传数据
uploadedFiles.value = {
fileNames: [],
fileUrls: []
}
// crud模板会自动打开弹框,这里只需要设置操作类型
}
// 取消
function cancel() {
crudRef.value.reset()
crudRef.value.dialogFormVisible = false
// 重置文件上传数据
uploadedFiles.value = {
fileNames: [],
fileUrls: []
}
}

// 文件上传成功处理
function handleUploadSuccess(response: any) {
console.log('文件上传成功:', response)
if (response && response.data) {
const { fileNames, fileUrls } = response.data
if (fileNames && fileUrls) {
uploadedFiles.value.fileNames = Array.isArray(fileNames) ? fileNames : [fileNames]
uploadedFiles.value.fileUrls = Array.isArray(fileUrls) ? fileUrls : [fileUrls]
}
}
ElMessage.success('文件上传成功')
}
//分页
function handleCurrentChange(val: number) {
@@ -146,11 +177,16 @@ function refreshLeft() {
}
//编辑与添加提交
function submit(data: any) {
let api = '/managew/knowledgebase/add'
let api = '/managew/aftersale/knowledgeBase/businessInfo/add'
if (typeOption.value === 'edit') {
api = '/managew/knowledgebase/updateById'
api = '/managew/aftersale/knowledgeBase/businessInfo/update'
}
data.serviceType = parseInt(data.serviceType)
// 添加文件上传数据 - 写死测试数据
data.fileNames = ['测试文件1.pdf', '测试文件2.docx']
data.fileUrls = ['https://example.com/file1.pdf', 'https://example.com/file2.docx']
BaseService.post(api, data).then((res: any) => {
if (res && res.code === 0) {
let bizContent = res.data
@@ -224,7 +260,12 @@ function getBusinessType() {
}
const feedBackShow = ref(false)
const feedBackType = ref(0)
const currentData = ref({})
const currentData = ref<any>({})
// 文件上传相关
const uploadedFiles = ref<any>({
fileNames: [],
fileUrls: []
})
// 无内容反馈
function handleEmptyFeedback(keys, scope) {
feedBackType.value = keys
@@ -282,6 +323,9 @@ let field = ref({
operateTitle: '操作', //操作栏标题(默认为"")
operateWidth:"200px",
operateFixed: true, //操作栏是否固定(默认false)
dialogWidth: '60%', //弹框宽度
dialogCustom: false, //自定义Dialog
formLabelWidth: '150px', //全局表单label宽度

operate: {
edit: true, //是否编辑(默认true)
@@ -299,6 +343,7 @@ let field = ref({
isToLead: true, //导入
isTemplate: true,
uploadBtnName: '导入',
isAdd: true, //新增按钮

templateUrl:
import.meta.env.VITE_APP_UPLOAD_URL +
@@ -322,9 +367,19 @@ let field = ref({
},
],
field: [
{
prop: 'blacklistFlag',
label: '是否有黑名单记录',
labelWidth: '150px',
form: {
type: 'input',
required: true,
},
},
{
prop: 'businessType',
label: '业务类型',
labelWidth: '150px',
form: {
type: 'input',
required: true,
@@ -333,86 +388,101 @@ let field = ref({
{
prop: 'caller',
label: '来电人',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
required: true,
},
},
{
prop: 'handler',
label: '办理人',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
required: true,
},
},
{
prop: 'vehicleLicense',
label: '行驶证',
prop: 'notes',
label: '注意事项',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
required: true,
},
},
{
prop: 'orderSequence',
label: '先后',
label: '办理先后顺序',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
required: true,
},
},
{
prop: 'blacklistFlag',
label: '是否有黑名单',
prop: 'processMethod',
label: '办理处理方式',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
required: true,
},
},
{
prop: 'transactionFlow',
label: '是否有流水',
prop: 'requiredMaterials',
label: '需提供的资料',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
required: true,
},
},
{
prop: 'situationDescription',
label: '情况',
label: '特殊情况说明',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
required: true,
},
},
{
prop: 'requiredMaterials',
label: '需提供资料',
prop: 'transactionFlow',
label: '是否存在流水信息',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
required: true,
},
},
{
prop: 'processMethod',
label: '处理',
prop: 'vehicleLicense',
label: '是否需要行驶证',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
required: true,
},
},
{
prop: 'notes',
label: '注意事项',
label: '附件上传',
prop: 'attachments',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
type: 'upload',
multiple: true,
accept: '.pdf,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif',
maxSize: 10, // 10MB
uploadUrl: '/upload', // 上传接口
placeholder: '请选择文件上传',
},
},
{
label: '状态',
prop: 'status',
labelWidth: '150px',
form: {
listData: [
{ value: "ENABLE", label: '启用' },

+ 121
- 10
src/views/onlineBusinessHall/onlineOperation/workOrderProcess/index.vue 查看文件

@@ -13,7 +13,9 @@
@refreshLeft="refreshLeft"
@submit="submit"
@add="Add"
@searchAdd="handleAddBtn"
@importData="handleSuccess"
@uploadSuccess="handleUploadSuccess"
>
<template #search>
<el-select
@@ -106,10 +108,10 @@ import { useRoute } from 'vue-router'
import { IsPermission } from '@/router/routerUtil'
const route = useRoute()
const crudRef = ref()
const serviceTypeOptinos = ref([])
const serviceType2Optinos = ref([])
const serviceType3Optinos = ref([])
const serviceType4Optinos = ref([])
const serviceTypeOptinos = ref<any[]>([])
const serviceType2Optinos = ref<any[]>([])
const serviceType3Optinos = ref<any[]>([])
const serviceType4Optinos = ref<any[]>([])

//查询参数
const searchForm = ref<any>({
@@ -159,10 +161,39 @@ function handleDelete(idx: any, row: any) {
function Add() {
typeOption.value = 'add'
}

//新增按钮点击事件
function handleAddBtn(title: any, row: any) {
typeOption.value = 'add'
// 重置文件上传数据
uploadedFiles.value = {
fileNames: [],
fileUrls: []
}
// crud模板会自动打开弹框,这里只需要设置操作类型
}
// 取消
function cancel() {
crudRef.value.reset()
crudRef.value.dialogFormVisible = false
// 重置文件上传数据
uploadedFiles.value = {
fileNames: [],
fileUrls: []
}
}

// 文件上传成功处理
function handleUploadSuccess(response: any) {
console.log('文件上传成功:', response)
if (response && response.data) {
const { fileNames, fileUrls } = response.data
if (fileNames && fileUrls) {
uploadedFiles.value.fileNames = Array.isArray(fileNames) ? fileNames : [fileNames]
uploadedFiles.value.fileUrls = Array.isArray(fileUrls) ? fileUrls : [fileUrls]
}
}
ElMessage.success('文件上传成功')
}
//分页
function handleCurrentChange(val: number) {
@@ -181,11 +212,16 @@ function refreshLeft() {
}
//编辑与添加提交
function submit(data: any) {
let api = '/managew/knowledgebase/add'
let api = '/managew/aftersale/knowledgeBase/workOrderProcess/add'
if (typeOption.value === 'edit') {
api = '/managew/aftersale/knowledgeBase/workOrderProcess/update'
}
data.serviceType = parseInt(data.serviceType)
// 添加文件上传数据 - 写死测试数据
data.fileNames = ['测试文件1.pdf', '测试文件2.docx']
data.fileUrls = ['https://example.com/file1.pdf', 'https://example.com/file2.docx']
BaseService.post(api, data).then((res: any) => {
if (res && res.code === 0) {
let bizContent = res.data
@@ -240,7 +276,12 @@ function getList() {
const businessTypeList = ref<any>([])
const feedBackShow = ref(false)
const feedBackType = ref(0)
const currentData = ref({})
const currentData = ref<any>({})
// 文件上传相关
const uploadedFiles = ref<any>({
fileNames: [],
fileUrls: []
})
// 无内容反馈
function handleEmptyFeedback(keys, scope) {
feedBackType.value = keys
@@ -300,7 +341,7 @@ function getAgencyList() {
if (res && res.code === 0) {
let bizContent = res.data
let data = bizContent || [];
let list = [] as IObject[];
let list = [] as any[];
data.typeList.map((item) => {
list.push({
label: item,
@@ -308,7 +349,7 @@ function getAgencyList() {
})
})
serviceTypeOptinos.value = list;
let list2 = [] as IObject[];
let list2 = [] as any[];
data.type2List.map((item) => {
list2.push({
label: item,
@@ -316,7 +357,7 @@ function getAgencyList() {
})
})
serviceType2Optinos.value = list2;
let list3 = [] as IObject[];
let list3 = [] as any[];
data.type3List.map((item) => {
list3.push({
label: item,
@@ -324,7 +365,7 @@ function getAgencyList() {
})
})
serviceType3Optinos.value = list3;
let list4 = [] as IObject[];
let list4 = [] as any[];
data.type4List.map((item) => {
list4.push({
label: item,
@@ -346,6 +387,9 @@ let field = ref({
operateTitle: '操作', //操作栏标题(默认为"")
operateWidth:"200px",
operateFixed: true, //操作栏是否固定(默认false)
dialogWidth: '60%', //弹框宽度
dialogCustom: false, //自定义Dialog
formLabelWidth: '150px', //全局表单label宽度

operate: {
edit: true, //是否编辑(默认true)
@@ -363,6 +407,7 @@ let field = ref({
isToLead: true, //导入
isTemplate: true,
uploadBtnName: '导入',
isAdd: true, //新增按钮

templateUrl:
import.meta.env.VITE_APP_UPLOAD_URL +
@@ -389,6 +434,7 @@ let field = ref({
{
prop: 'level1',
label: '一级',
labelWidth: '150px',
form: {
type: 'input',
required: true,
@@ -398,6 +444,7 @@ let field = ref({
{
prop: 'level2',
label: '二级',
labelWidth: '150px',
form: {
type: 'input',
required: true,
@@ -406,6 +453,7 @@ let field = ref({
{
prop: 'level3',
label: '三级',
labelWidth: '150px',
form: {
type: 'input',
required: true,
@@ -414,6 +462,7 @@ let field = ref({
{
prop: 'level4',
label: '四级',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -422,6 +471,7 @@ let field = ref({
{
prop: 'line1HandlingMain',
label: '处理方式及步骤',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -430,6 +480,7 @@ let field = ref({
{
prop: 'line1AgentSteps',
label: '坐席操作步骤',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -438,6 +489,7 @@ let field = ref({
{
prop: 'line1Script',
label: '一线话术',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -446,6 +498,7 @@ let field = ref({
{
prop: 'line1Documents',
label: '业务办理资料',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -454,6 +507,7 @@ let field = ref({
{
prop: 'line1Notes',
label: '注意事项',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -462,6 +516,7 @@ let field = ref({
{
prop: 'line1Type',
label: '工单类型',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -470,6 +525,7 @@ let field = ref({
{
prop: 'line2HandlingMain',
label: '处理方式核对一线通话录音',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -478,6 +534,7 @@ let field = ref({
{
prop: 'line2AgentSteps',
label: '坐席操作步骤',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -486,6 +543,7 @@ let field = ref({
{
prop: 'line2AcceptSms',
label: '工单受理短信',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -494,6 +552,7 @@ let field = ref({
{
prop: 'line2CompleteSms',
label: '业务处理工单完结短信',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -502,6 +561,7 @@ let field = ref({
{
prop: 'line2CallbackScript',
label: '投诉工单的回访话术',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
@@ -510,14 +570,65 @@ let field = ref({
{
prop: 'line2Notes',
label: '注意事项',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
},
},
{
prop: 'line1Reserve1',
label: '一线处理方式1(预留字段1)',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
},
},
{
prop: 'line1Reserve2',
label: '一线处理方式(预留字段2)',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
},
},
{
prop: 'line2Reserve1',
label: '二线处理方式(预留字段1)',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
},
},
{
prop: 'line2Reserve2',
label: '二线处理方式(预留字段2)',
labelWidth: '150px',
form: {
type: 'input',
// required: true,
},
},
{
label: '附件上传',
prop: 'attachments',
labelWidth: '150px',
form: {
type: 'upload',
multiple: true,
accept: '.pdf,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif',
maxSize: 10, // 10MB
uploadUrl: '/upload', // 上传接口
placeholder: '请选择文件上传',
},
},
{
label: '状态',
prop: 'status',
labelWidth: '150px',
form: {
listData: [
{ value: "ENABLE", label: '启用' },

Loading…
取消
儲存