服务考核部分内容调整

This commit is contained in:
1378012178@qq.com 2026-04-17 14:33:01 +08:00
parent 9bac52a1d0
commit 22ea566dbf
5 changed files with 100 additions and 100 deletions

View File

@ -12,6 +12,7 @@ enum Api {
importExcel = '/sysconfig/sysConfig/importExcel', importExcel = '/sysconfig/sysConfig/importExcel',
exportXls = '/sysconfig/sysConfig/exportXls', exportXls = '/sysconfig/sysConfig/exportXls',
queryByKey = '/sysconfig/sysConfig/queryByKey', queryByKey = '/sysconfig/sysConfig/queryByKey',
queryByKeys = '/sysconfig/sysConfig/queryByKeys',
} }
/** /**
@ -38,6 +39,13 @@ export const list = (params) => defHttp.get({ url: Api.list, params });
*/ */
export const queryByKey = (params) => defHttp.get({ url: Api.queryByKey, params }); export const queryByKey = (params) => defHttp.get({ url: Api.queryByKey, params });
/**
* keys获取数据
* @param params keys
* @returns
*/
export const queryByKeys = (params) => defHttp.get({ url: Api.queryByKeys, params });
/** /**
* *
* @param params * @param params

View File

@ -8,7 +8,10 @@ export const columns: BasicColumn[] = [
{ {
title: '员工', title: '员工',
align: 'center', align: 'center',
dataIndex: 'optNames', dataIndex: 'employeeNames',
customRender: ({ record }) => {
return record.employeeNames || record.employeeName;
},
}, },
{ {
title: '区域名称', title: '区域名称',
@ -18,7 +21,7 @@ export const columns: BasicColumn[] = [
{ {
title: '分类标签', title: '分类标签',
align: 'center', align: 'center',
dataIndex: 'instructionTagName', dataIndex: 'instructionName',
}, },
{ {
title: '服务类别', title: '服务类别',
@ -38,36 +41,21 @@ export const columns: BasicColumn[] = [
{ {
title: '指令日期', title: '指令日期',
align: 'center', align: 'center',
dataIndex: 'startTime', dataIndex: 'servStartTime',
customRender: ({ text }) => { customRender: ({ text }) => {
text = !text ? '' : text.length > 10 ? text.substr(0, 10) : text; text = !text ? '' : text.length > 10 ? text.substr(0, 10) : text;
return text; return text;
}, },
}, },
{
title: '执行状态',
align: 'center',
dataIndex: 'optStatus_dictText',
},
{
title: '审核结果',
align: 'center',
dataIndex: 'status_dictText',
},
// { // {
// title: '驳回原因', // title: '执行状态',
// align: "center", // align: 'center',
// dataIndex: 'content' // dataIndex: 'optStatus_dictText',
// }, // },
// { // {
// title: '撤回人(汉字)', // title: '审核结果',
// align: "center", // align: 'center',
// dataIndex: 'revocation' // dataIndex: 'status_dictText',
// },
// {
// title: '撤回时间',
// align: "center",
// dataIndex: 'revocationTime'
// }, // },
]; ];
@ -81,7 +69,6 @@ export const superQuerySchema = {
optType: { title: '执行类型 1单人 2协助 3转单', order: 29, view: 'list', type: 'string', dictCode: 'directive_order_opt_type' }, optType: { title: '执行类型 1单人 2协助 3转单', order: 29, view: 'list', type: 'string', dictCode: 'directive_order_opt_type' },
optStatus: { title: '执行状态 1正常 2未执行 3超时', order: 30, view: 'list', type: 'string', dictCode: 'directive_order_opt_status' }, optStatus: { title: '执行状态 1正常 2未执行 3超时', order: 30, view: 'list', type: 'string', dictCode: 'directive_order_opt_status' },
optNames: { title: '实际执行人名称(多个); 主要执行人+协助人', order: 31, view: 'text', type: 'string' }, optNames: { title: '实际执行人名称(多个); 主要执行人+协助人', order: 31, view: 'text', type: 'string' },
status: { title: '审核状态 0待审核 1通过 2未通过', order: 32, view: 'list', type: 'string', dictCode: 'appraisal_status' },
content: { title: '驳回原因', order: 33, view: 'textarea', type: 'string' }, content: { title: '驳回原因', order: 33, view: 'textarea', type: 'string' },
revocation: { title: '撤回人(汉字)', order: 34, view: 'text', type: 'string' }, revocation: { title: '撤回人(汉字)', order: 34, view: 'text', type: 'string' },
revocationTime: { title: '撤回时间', order: 35, view: 'datetime', type: 'string' }, revocationTime: { title: '撤回时间', order: 35, view: 'datetime', type: 'string' },

View File

@ -6,25 +6,25 @@
:wrapper-col="wrapperCol"> :wrapper-col="wrapperCol">
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :lg="6"> <a-col :lg="6">
<a-form-item name="optNames"> <a-form-item name="employeeNames">
<template #label><span title="员工">员工</span></template> <template #label><span title="员工">员工</span></template>
<j-dict-select-tag v-model:value="queryParam.optNames" <j-dict-select-tag v-model:value="queryParam.employeeNames"
:dictCode="`nu_biz_employees_info,name,name, 1=1 order by entry_time desc`" placeholder="请选择员工" :dictCode="`nu_biz_employees_info,name,name, 1=1 order by entry_time desc`" placeholder="请选择员工"
allowClear /> allowClear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6"> <!-- <a-col :lg="6">
<a-form-item name="nuId"> <a-form-item name="nuId">
<template #label><span title="区域名称">区域名称</span></template> <template #label><span title="区域名称">区域名称</span></template>
<j-dict-select-tag v-model:value="queryParam.nuId" <j-dict-select-tag v-model:value="queryParam.nuId"
:dictCode="`nu_base_info,nu_name,nu_id,del_flag = 0 order by area_flag asc`" placeholder="请选择区域名称" :dictCode="`nu_base_info,nu_name,nu_id,del_flag = 0 order by area_flag asc`" placeholder="请选择区域名称"
allowClear /> allowClear />
</a-form-item> </a-form-item>
</a-col> </a-col> -->
<a-col :lg="6"> <a-col :lg="6">
<a-form-item name="instructionTagId"> <a-form-item name="instructionId">
<template #label><span title="分类标签">分类标签</span></template> <template #label><span title="分类标签">分类标签</span></template>
<j-dict-select-tag v-model:value="queryParam.instructionTagId" <j-dict-select-tag v-model:value="queryParam.instructionId"
:dictCode="`nu_config_service_instruction_tag,instruction_name,id,del_flag = 0 order by sort asc`" :dictCode="`nu_config_service_instruction_tag,instruction_name,id,del_flag = 0 order by sort asc`"
placeholder="请选择分类标签" allowClear /> placeholder="请选择分类标签" allowClear />
</a-form-item> </a-form-item>
@ -33,7 +33,7 @@
<a-form-item name="categoryId"> <a-form-item name="categoryId">
<template #label><span title="服务类别">服务类别</span></template> <template #label><span title="服务类别">服务类别</span></template>
<j-dict-select-tag type="list" v-model:value="queryParam.categoryId" <j-dict-select-tag type="list" v-model:value="queryParam.categoryId"
:dictCode="`nu_config_service_category,category_name,id,del_flag = 0 and instruction_id = '${queryParam.instructionTagId || ''}' order by sort asc`" :dictCode="`nu_config_service_category,category_name,id,del_flag = 0 and instruction_id = '${queryParam.instructionId || ''}' order by sort asc`"
placeholder="请选择服务类别" allowClear :ignoreDisabled="true" /> placeholder="请选择服务类别" allowClear :ignoreDisabled="true" />
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -52,32 +52,26 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6"> <a-col :lg="6">
<a-form-item name="startTime"> <a-form-item name="servStartTime">
<template #label><span title="指令日期">指令日期</span></template> <template #label><span title="指令日期">指令日期</span></template>
<a-range-picker value-format="YYYY-MM-DD" v-model:value="queryParam.startTime" class="query-group-cust" /> <a-range-picker value-format="YYYY-MM-DD" v-model:value="queryParam.servStartTime"
class="query-group-cust" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<!-- <a-col :lg="6"> <!-- <a-col :lg="6">
<a-form-item name="optType">
<template #label><span title="执行类型 1单人 2协助 3转单">执行类型</span></template>
<j-select-multiple placeholder="请选择执行类型 1单人 2协助 3转单" v-model:value="queryParam.optType"
dictCode="directive_order_opt_type" allow-clear />
</a-form-item>
</a-col> -->
<a-col :lg="6">
<a-form-item name="optStatus"> <a-form-item name="optStatus">
<template #label><span title="执行状态">执行状态</span></template> <template #label><span title="执行状态">执行状态</span></template>
<j-dict-select-tag v-model:value="queryParam.optStatus" dictCode="directive_order_opt_status" <j-dict-select-tag v-model:value="queryParam.optStatus" dictCode="directive_order_opt_status"
placeholder="请选择执行状态" allowClear /> placeholder="请选择执行状态" allowClear />
</a-form-item> </a-form-item>
</a-col> </a-col> -->
<a-col :lg="6"> <!-- <a-col :lg="6">
<a-form-item name="status"> <a-form-item name="status">
<template #label><span title="审核状态">审核结果</span></template> <template #label><span title="审核状态">审核结果</span></template>
<j-dict-select-tag v-model:value="queryParam.status" dictCode="appraisal_status" placeholder="请选择审核结果" <j-dict-select-tag v-model:value="queryParam.status" dictCode="appraisal_status" placeholder="请选择审核结果"
allowClear /> allowClear />
</a-form-item> </a-form-item>
</a-col> </a-col> -->
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6"> <a-col :lg="6">
@ -103,12 +97,13 @@
</template> </template>
</BasicTable> </BasicTable>
<!-- 表单区域 --> <!-- 表单区域 -->
<DirectiveAppraisalModal ref="registerModal" @success="handleSuccess"></DirectiveAppraisalModal> <DirectiveAppraisalModal ref="registerModal" @success="handleSuccess" :tplinkUrlPre="tplinkUrlPre">
</DirectiveAppraisalModal>
</div> </div>
</template> </template>
<script lang="ts" name="appraisal-directiveAppraisal" setup> <script lang="ts" name="appraisal-directiveAppraisal" setup>
import { ref, reactive, watch } from 'vue'; import { ref, reactive, watch, onMounted } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table'; import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { useListPage } from '/@/hooks/system/useListPage'; import { useListPage } from '/@/hooks/system/useListPage';
import { columns, superQuerySchema } from './DirectiveAppraisal.data'; import { columns, superQuerySchema } from './DirectiveAppraisal.data';
@ -121,11 +116,12 @@ import JSelectMultiple from '/@/components/Form/src/jeecg/components/JSelectMult
import JInput from "/@/components/Form/src/jeecg/components/JInput.vue"; import JInput from "/@/components/Form/src/jeecg/components/JInput.vue";
import { cloneDeep } from "lodash-es"; import { cloneDeep } from "lodash-es";
import { useMessage } from '/@/hooks/web/useMessage'; import { useMessage } from '/@/hooks/web/useMessage';
import { queryByKeys } from '/@/views/admin/sysconfig/SysConfig.api'
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const formRef = ref(); const formRef = ref();
const queryParam = reactive<any>({ const queryParam = reactive<any>({
startTime: (() => { servStartTime: (() => {
const d = new Date(); const d = new Date();
d.setDate(d.getDate() - 1); // d.setDate(d.getDate() - 1); //
const dateStr = d.toISOString().split('T')[0]; const dateStr = d.toISOString().split('T')[0];
@ -136,7 +132,7 @@ const toggleSearchStatus = ref<boolean>(false);
const registerModal = ref(); const registerModal = ref();
const userStore = useUserStore(); const userStore = useUserStore();
watch( watch(
() => queryParam.instructionTagId, () => queryParam.instructionId,
() => { () => {
queryParam.categoryId = '' queryParam.categoryId = ''
queryParam.typeId = '' queryParam.typeId = ''
@ -232,18 +228,19 @@ function getTableAction(record) {
{ {
label: '详情', label: '详情',
onClick: handleDetail.bind(null, record), onClick: handleDetail.bind(null, record),
}, {
label: '考核',
onClick: handleEdit.bind(null, record),
ifShow: record.status == '1' || record.status == '4'
}, {
label: '撤回',
ifShow: record.status == '2' || record.status == '3',
popConfirm: {
title: '是否确认撤回',
confirm: handleRevocationFunc.bind(null, record),
},
}, },
// {
// label: '',
// onClick: handleEdit.bind(null, record),
// ifShow: record.status == '1' || record.status == '4'
// }, {
// label: '',
// ifShow: record.status == '2' || record.status == '3',
// popConfirm: {
// title: '',
// confirm: handleRevocationFunc.bind(null, record),
// },
// },
]; ];
} }
@ -266,7 +263,7 @@ function searchReset() {
let rangeField = 'startTime,' let rangeField = 'servStartTime,'
/** /**
* 设置范围查询条件 * 设置范围查询条件
@ -289,6 +286,15 @@ async function setRangeQuery() {
} }
return queryParamClone; return queryParamClone;
} }
const tplinkUrlPre = ref('')
onMounted(async () => {
let data = await queryByKeys({ keys: 'enabled_cdn,cos_url,cdn_url' })
if (data.enabled_cdn.configValue == 'Y') {
tplinkUrlPre.value = data.cdn_url.configValue
} else {
tplinkUrlPre.value = data.cos_url.configValue
}
})
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

View File

@ -17,7 +17,7 @@
<a-form-item label="" id="DirectiveAppraisalForm-tplinkPath" <a-form-item label="" id="DirectiveAppraisalForm-tplinkPath"
name="tplinkPath"> name="tplinkPath">
<video v-if="!!formData.tplinkPath" controls style="width: 120%;"> <video v-if="!!formData.tplinkPath" controls style="width: 120%;">
<source :src="opeMediaAddress + formData.tplinkPath" <source :src="tplinkUrlPre + formData.tplinkPath"
type="video/mp4"> type="video/mp4">
您的浏览器不支持视频播放 您的浏览器不支持视频播放
</video> </video>
@ -76,9 +76,9 @@
<SectionDivider :title="'基础信息'" /> <SectionDivider :title="'基础信息'" />
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="分类标签" v-bind="validateInfos.instructionTagName" <a-form-item label="分类标签" v-bind="validateInfos.instructionName"
id="DirectiveAppraisalForm-instructionTagName" name="instructionTagName"> id="DirectiveAppraisalForm-instructionName" name="instructionName">
<a-input v-model:value="formData.instructionTagName"></a-input> <a-input v-model:value="formData.instructionName"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@ -99,18 +99,12 @@
<a-input v-model:value="formData.directiveName"></a-input> <a-input v-model:value="formData.directiveName"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <!-- <a-col :span="12">
<a-form-item label="服务指令描述" v-bind="validateInfos.serviceContent" <a-form-item label="服务指令描述" v-bind="validateInfos.serviceContent"
id="DirectiveAppraisalForm-serviceContent" name="serviceContent"> id="DirectiveAppraisalForm-serviceContent" name="serviceContent">
<a-input v-model:value="formData.serviceContent"></a-input> <a-input v-model:value="formData.serviceContent"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col> -->
<a-col :span="12" v-show="formData.izPackage == 'Y'">
<a-form-item label="服务指令包" v-bind="validateInfos.packageName"
id="DirectiveAppraisalForm-packageName" name="packageName">
<a-input v-model:value="formData.packageName"></a-input>
</a-form-item>
</a-col>
</a-row> </a-row>
</a-form> </a-form>
</template> </template>
@ -132,9 +126,9 @@
</a-form-item> </a-form-item>
</a-col> --> </a-col> -->
<a-col :span="12"> <a-col :span="12">
<a-form-item label="执行人" v-bind="validateInfos.optNames" <a-form-item label="执行人" v-bind="validateInfos.employeeNames"
id="DirectiveAppraisalForm-optNames" name="optNames"> id="DirectiveAppraisalForm-employeeNames" name="employeeNames">
<a-input v-model:value="formData.optNames"></a-input> <a-input v-model:value="formData.employeeNames"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@ -145,37 +139,37 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="预计开始时间" v-bind="validateInfos.startTime" <a-form-item label="预计开始时间" v-bind="validateInfos.servStartTime"
id="DirectiveAppraisalForm-startTime" name="startTime"> id="DirectiveAppraisalForm-servStartTime" name="servStartTime">
<a-date-picker v-model:value="formData.startTime" showTime <a-date-picker v-model:value="formData.servStartTime" showTime
value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="预计结束时间" v-bind="validateInfos.endTime" <a-form-item label="预计结束时间" v-bind="validateInfos.servEndTime"
id="DirectiveAppraisalForm-endTime" name="endTime"> id="DirectiveAppraisalForm-servEndTime" name="servEndTime">
<a-date-picker v-model:value="formData.endTime" showTime <a-date-picker v-model:value="formData.servEndTime" showTime
value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="实际开始时间" v-bind="validateInfos.beginTime" <a-form-item label="实际开始时间" v-bind="validateInfos.empStartTime"
id="DirectiveAppraisalForm-beginTime" name="beginTime"> id="DirectiveAppraisalForm-empStartTime" name="empStartTime">
<a-date-picker v-model:value="formData.beginTime" showTime <a-date-picker v-model:value="formData.empStartTime" showTime
value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="实际结束时间" v-bind="validateInfos.finishTime" <a-form-item label="实际结束时间" v-bind="validateInfos.empEndTime"
id="DirectiveAppraisalForm-finishTime" name="finishTime"> id="DirectiveAppraisalForm-empEndTime" name="empEndTime">
<a-date-picker v-model:value="formData.finishTime" showTime <a-date-picker v-model:value="formData.empEndTime" showTime
value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" /> value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="执行状态" v-bind="validateInfos.optStatus" <a-form-item label="执行状态" v-bind="validateInfos.orderStatus"
id="DirectiveAppraisalForm-optStatus" name="optStatus"> id="DirectiveAppraisalForm-orderStatus" name="orderStatus">
<j-dict-select-tag v-model:value="formData.optStatus" <j-dict-select-tag v-model:value="formData.orderStatus"
dictCode="directive_order_opt_status" /> dictCode="directive_order_opt_status" />
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -299,7 +293,8 @@ const modalWidth = ref<string>('auto');
const props = defineProps({ const props = defineProps({
formDisabled: { type: Boolean, default: false }, formDisabled: { type: Boolean, default: false },
formData: { type: Object, default: () => ({}) }, formData: { type: Object, default: () => ({}) },
formBpm: { type: Boolean, default: true } formBpm: { type: Boolean, default: true },
tplinkUrlPre: { type: String, default: '' },
}); });
const activeKey = ref('tplink') const activeKey = ref('tplink')
const formRef = ref(); const formRef = ref();
@ -309,7 +304,7 @@ const formData = reactive<Record<string, any>>({
id: '', id: '',
nuName: '', nuName: '',
employeeName: '', employeeName: '',
instructionTagName: '', instructionName: '',
categoryName: '', categoryName: '',
serviceAttribute: '', serviceAttribute: '',
typeName: '', typeName: '',
@ -325,19 +320,19 @@ const formData = reactive<Record<string, any>>({
realComPrice: undefined, realComPrice: undefined,
packageName: '', packageName: '',
izPackage: '', izPackage: '',
startTime: '', servStartTime: '',
endTime: '', servEndTime: '',
beginTime: '', empStartTime: '',
finishTime: '', empEndTime: '',
izStart: '', izStart: '',
izFinish: '', izFinish: '',
tplinkPath: '', tplinkPath: '',
manuallyPicPath: '', manuallyPicPath: '',
manuallyMp4Path: '', manuallyMp4Path: '',
optType: '', optType: '',
optStatus: '', orderStatus: '',
optIds: '', optIds: '',
optNames: '', employeeNames: '',
status: '', status: '',
content: '', content: '',
revocation: '', revocation: '',
@ -347,7 +342,7 @@ const formData = reactive<Record<string, any>>({
nuId: '', nuId: '',
elderId: '', elderId: '',
elderName: '', elderName: '',
instructionTagId: '', instructionId: '',
categoryId: '', categoryId: '',
typeId: '', typeId: '',
directiveId: '', directiveId: '',

View File

@ -2,7 +2,7 @@
<a-drawer :title="title" width="100%" v-model:visible="visible" :closable="true" <a-drawer :title="title" width="100%" v-model:visible="visible" :closable="true"
:footer-style="{ textAlign: 'right' }" @close="handleCancel"> :footer-style="{ textAlign: 'right' }" @close="handleCancel">
<DirectiveAppraisalForm v-if="visible" ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" <DirectiveAppraisalForm v-if="visible" ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit"
:formBpm="false"></DirectiveAppraisalForm> :formBpm="false" :tplinkUrlPre="tplinkUrlPre"></DirectiveAppraisalForm>
<template #footer> <template #footer>
<a-button type="primary" style="margin-right: 8px" @click="handleCancel">关闭</a-button> <a-button type="primary" style="margin-right: 8px" @click="handleCancel">关闭</a-button>
<a-button type="primary" @click="handleOk" v-if="!disableSubmit">确认</a-button> <a-button type="primary" @click="handleOk" v-if="!disableSubmit">确认</a-button>
@ -14,7 +14,11 @@
import { ref, nextTick, defineExpose } from 'vue'; import { ref, nextTick, defineExpose } from 'vue';
import DirectiveAppraisalForm from './DirectiveAppraisalForm.vue' import DirectiveAppraisalForm from './DirectiveAppraisalForm.vue'
import JModal from '/@/components/Modal/src/JModal/JModal.vue'; import JModal from '/@/components/Modal/src/JModal/JModal.vue';
import { string } from 'vue-types';
const props = defineProps({
tplinkUrlPre: { type: String, default: '' },
});
const title = ref<string>(''); const title = ref<string>('');
const width = ref<number>(800); const width = ref<number>(800);
const visible = ref<boolean>(false); const visible = ref<boolean>(false);