This commit is contained in:
shidongli 2024-06-14 15:35:57 +08:00
parent ee378a357e
commit bd016ace81

View File

@ -1,5 +1,5 @@
<template>
<div class="app-container" ref="layout">
<div class="app-container">
<el-row :gutter="20">
<el-col :span="5">
<div class="leftscript" ref="box">
@ -21,82 +21,76 @@
</div>
</div>
</el-col>
<el-col :span="19" :xs="24">
<div ref="form" class="form">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="通用话术名称" prop="commonScriptName" label-width="100px">
<el-input v-model="queryParams.commonScriptName" placeholder="请输入通用话术名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="话术名称" prop="scriptName">
<el-input v-model="queryParams.scriptName" placeholder="请输入话术名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="话术ID" prop="scriptId">
<el-input v-model="queryParams.scriptId" placeholder="请输入话术ID" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="平台ID" prop="platformId">
<el-input v-model="queryParams.platformId" placeholder="请输入平台ID" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="话术状态" prop="scriptStatus">
<el-select v-model="queryParams.scriptStatus" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-col :span="19" :xs="24"
style="height:calc(100vh - 124px);display: flex;flex-wrap: wrap;flex-direction: column;justify-content: space-between;">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
label-width="68px">
<el-form-item label="通用话术名称" prop="commonScriptName" label-width="100px">
<el-input v-model="queryParams.commonScriptName" placeholder="请输入通用话术名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="话术名称" prop="scriptName">
<el-input v-model="queryParams.scriptName" placeholder="请输入话术名称" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="话术ID" prop="scriptId">
<el-input v-model="queryParams.scriptId" placeholder="请输入话术ID" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="平台ID" prop="platformId">
<el-input v-model="queryParams.platformId" placeholder="请输入平台ID" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="话术状态" prop="scriptStatus">
<el-select v-model="queryParams.scriptStatus" placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
</div>
<div ref="mb8" class="mb8">
<el-row :gutter="10" class="">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['manage:script:add']">新增</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
</div>
<div ref="table">
<el-table :max-height="maxTableHeight" v-loading="loading" :data="scriptList"
@selection-change="handleSelectionChange">
<el-table-column label="序号" align="center" prop="sort" type="index" />
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['manage:script:add']">新增</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="scriptList" @selection-change="handleSelectionChange">
<el-table-column label="序号" align="center" prop="sort" type="index" />
<el-table-column label="通用话术名称" align="center" prop="commonScriptName" :show-overflow-tooltip="true" />
<el-table-column label="话术名称" align="center" prop="scriptName" :show-overflow-tooltip="true" />
<el-table-column label="话术ID" align="center" prop="scriptId" :show-overflow-tooltip="true" />
<el-table-column label="平台ID" align="center" prop="platformId" :show-overflow-tooltip="true" />
<el-table-column label="话术状态" align="center" prop="scriptStatus">
<template slot-scope="scope">
{{ scope.row.scriptStatus == "NORMAL" ? "正常" : "" }}
{{ scope.row.scriptStatus == "OFF_SHELF" ? "下架" : "" }}
{{ scope.row.scriptStatus == "SUSPEND" ? "暂停" : "" }}
</template>
</el-table-column>
<el-table-column label="话术简介" align="center" prop="scriptIntroduction" :show-overflow-tooltip="true" />
<el-table-column label="病种名称" align="center" prop="diseaseTypeName" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-search" @click="handlesee(scope.row)">预览</el-button>
<el-button size="mini" type="text" icon="el-icon-zoom-in" @click="see(scope.row)">话术</el-button>
<el-button size="mini" type="text" icon="el-icon-picture-outline"
@click="seescript(scope.row)">话术预览</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['manage:script:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['manage:script:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<el-table-column label="通用话术名称" align="center" prop="commonScriptName" :show-overflow-tooltip="true" />
<el-table-column label="话术名称" align="center" prop="scriptName" :show-overflow-tooltip="true" />
<el-table-column label="话术ID" align="center" prop="scriptId" :show-overflow-tooltip="true" />
<el-table-column label="平台ID" align="center" prop="platformId" :show-overflow-tooltip="true" />
<el-table-column label="话术状态" align="center" prop="scriptStatus">
<template slot-scope="scope">
{{ scope.row.scriptStatus == "NORMAL" ? "正常" : "" }}
{{ scope.row.scriptStatus == "OFF_SHELF" ? "下架" : "" }}
{{ scope.row.scriptStatus == "SUSPEND" ? "暂停" : "" }}
</template>
</el-table-column>
<el-table-column label="话术简介" align="center" prop="scriptIntroduction" :show-overflow-tooltip="true" />
<el-table-column label="病种名称" align="center" prop="diseaseTypeName" :show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-folder-delete" v-if="scope.row.releaseStatus == 'PUBLISHED'"
@click="norelease(scope.row)">取消发布</el-button>
<el-button size="mini" icon="el-icon-folder-checked" type="text" v-else @click="release(scope.row)">发布</el-button>
<el-button size="mini" type="text" icon="el-icon-search" @click="handlesee(scope.row)">预览</el-button>
<el-button size="mini" type="text" icon="el-icon-zoom-in" @click="see(scope.row)">话术</el-button>
<el-button size="mini" type="text" icon="el-icon-picture-outline" @click="seescript(scope.row)">话术预览</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['manage:script:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['manage:script:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-col>
@ -252,7 +246,6 @@ export default {
name: "Script",
data() {
return {
maxTableHeight: undefined,
obj: null,
itemname: null,
departmentName: null,
@ -448,10 +441,6 @@ export default {
this.Departmentlist();
},
mounted() {
this.getMaxTableHeight()
this.screenChange()
},
watch: {
name(val) {
this.querydepartmen.departmentName = val
@ -513,6 +502,40 @@ export default {
}
},
//
release(item) {
this.$confirm('是否发布此话术?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(() => {
var obj = { ...item }
obj.releaseStatus = 'PUBLISHED'
editReleaseStatus(obj).then(response => {
this.$message({
type: 'success',
message: '发布成功!'
});
this.getList();
});
})
},
//
norelease(item) {
this.$confirm('是否取消发布此话术?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(() => {
var obj = { ...item }
obj.releaseStatus = 'REVOKE'
editReleaseStatus(obj).then(response => {
this.$message({
type: 'success',
message: '取消发布成功!'
});
this.getList();
});
})
},
//
@ -834,30 +857,7 @@ export default {
this.download('manage/script/export', {
...this.queryParams
}, `script_${new Date().getTime()}.xlsx`)
},
//
getMaxTableHeight() {
const windowInnerHeight = window.innerHeight //
const layoutDiv = this.$refs.layout
const formDiv = this.$refs.form
const mb8Div = this.$refs.mb8
this.maxTableHeight =
windowInnerHeight - 134 -
this.getBoxPadding(layoutDiv) -
this.getBoxHeight(mb8Div) -
this.getBoxHeight(formDiv)
},
// resize
screenChange() {
// resizeresize
window.addEventListener('resize', this.getMaxTableHeight, true)
//
//
// beforeDestroy
this.$once('hook:beforeDestroy', () => {
window.removeEventListener('resize', this.getMaxTableHeight, true)
})
},
}
}
};
</script>
@ -921,12 +921,4 @@ export default {
left: 20px;
top: -11px;
}
.app-container {
padding: 20px 0 0 20px !important;
}
::v-deep .el-row {
height: 100% !important;
}
</style>