1、服务指令增加服务属性(定时、计时)

2、服务指令详情/新增/编辑将默认指令图标、焦点指令图标挪到服务指令描述前
3、服务指令列表页回显服务属性;详情、编辑回显服务属性
4、服务指令新增、编辑时,管理平台的操作日志相关内容存储
5、服务指令库增加服务属性回显
This commit is contained in:
1378012178@qq.com 2026-03-03 10:57:10 +08:00
parent 78fd4dbdbc
commit 075f67891e
4 changed files with 61 additions and 17 deletions

View File

@ -39,6 +39,11 @@ export const columns: BasicColumn[] = [
align: 'center',
dataIndex: 'directiveName',
},
{
title: '服务属性',
align: 'center',
dataIndex: 'serviceAttribute_dictText',
},
// {
// title: '体型标签',
// align: 'center',

View File

@ -38,6 +38,11 @@ export const columns: BasicColumn[] = [
align: 'center',
dataIndex: 'directiveName',
},
{
title: '服务属性',
align: 'center',
dataIndex: 'serviceAttribute_dictText',
},
// {
// title: '体型标签',
// align: 'center',

View File

@ -72,10 +72,10 @@
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="服务时长" v-bind="validateInfos.serviceDuration"
id="ConfigServiceDirectiveForm-serviceDuration" name="serviceDuration">
<a-input-number v-model:value="formData.serviceDuration" :min="0" :max="55" :step="5" addon-after="分钟"
placeholder="请输入服务时长(分钟)" allow-clear @keydown="onDurationKeydown" :disabled="disabled" />
<a-form-item label="服务属性" v-bind="validateInfos.serviceAttribute"
id="ConfigServiceDirectiveForm-serviceAttribute" name="serviceAttribute">
<j-dict-select-tag v-model:value="formData.serviceAttribute" dictCode="service_attribute"
placeholder="请选择服务属性" allow-clear :disabled="disabled" />
</a-form-item>
</a-col>
<a-col :span="12">
@ -85,6 +85,13 @@
:max="99999.99" :precision="2" @keydown="onPriceKeydown" :disabled="disabled" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="服务时长" v-bind="validateInfos.serviceDuration"
id="ConfigServiceDirectiveForm-serviceDuration" name="serviceDuration">
<a-input-number v-model:value="formData.serviceDuration" :min="0" :max="55" :step="5" addon-after="分钟"
placeholder="请输入服务时长(分钟)" allow-clear @keydown="onDurationKeydown" :disabled="disabled" />
</a-form-item>
</a-col>
<!-- <a-col :span="12">
<a-form-item label="指令类型" v-bind="validateInfos.cycleType" id="ConfigServiceDirectiveForm-cycleType"
name="cycleType">
@ -92,13 +99,13 @@
placeholder="请选择指令类型" allowClear @upDictCode="upCycleTypeDictCode" :disabled="!!formData.id" />
</a-form-item>
</a-col> -->
<a-col :span="12">
<!-- <a-col :span="12">
<a-form-item label="超时时长" v-bind="validateInfos.timeoutDuration"
id="ConfigServiceDirectiveForm-timeoutDuration" name="timeoutDuration">
<a-input-number v-model:value="formData.timeoutDuration" :min="0" :max="55" :step="5" addon-after="分钟"
placeholder="请输入超时时长(分钟)" allow-clear @keydown="onDurationKeydown" :disabled="disabled" />
</a-form-item>
</a-col>
</a-col> -->
<a-col :span="12">
<a-form-item label="提成价格(元)" v-bind="validateInfos.comPrice" id="ConfigServiceDirectiveForm-comPrice"
name="comPrice">
@ -113,12 +120,34 @@
placeholder="请选择是否启用"  allowClear :disabled="disabled" />
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="默认指令图标" v-bind="validateInfos.immediateFile" id="ElderTagForm-immediateFile"
name="immediateFile">
<JImageUploadToOpe v-if="opeType == 'dmlook'" :fileMax="1"
:value="opeMediaAddress + formData.immediateFile">
</JImageUploadToOpe>
<JImageUploadToOpe v-else :toOpe="true" :bizPath="formComputedData.mediaFileSavePath" :fileMax="1"
v-model:value="formData.immediateFile" :disabled="disabled">
</JImageUploadToOpe>
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="焦点指令图标" v-bind="validateInfos.immediateFileFocus"
id="ElderTagForm-immediateFileFocus" name="immediateFileFocus">
<JImageUploadToOpe v-if="opeType == 'dmlook'" :fileMax="1"
:value="opeMediaAddress + formData.immediateFileFocus">
</JImageUploadToOpe>
<JImageUploadToOpe v-else :toOpe="true" :bizPath="formComputedData.mediaFileSavePath" :fileMax="1"
v-model:value="formData.immediateFileFocus" :disabled="disabled">
</JImageUploadToOpe>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="服务指令描述" v-bind="validateInfos.serviceContent" id="ConfigServiceDirectiveForm-serviceContent" :labelCol="labelCol2" :wrapperCol="wrapperCol2"
<a-form-item label="服务指令描述" v-bind="validateInfos.serviceContent"
id="ConfigServiceDirectiveForm-serviceContent" :labelCol="labelCol2" :wrapperCol="wrapperCol2"
name="serviceContent">
<a-textarea v-model:value="formData.serviceContent" placeholder="请输入服务指令描述" :maxlength="200"
:rows="3" :autosize="{ minRows: 3 }" :showCount="true"
:disabled="disabled || (!isMain && !!formData.id)" />
<a-textarea v-model:value="formData.serviceContent" placeholder="请输入服务指令描述" :maxlength="200" :rows="3"
:autosize="{ minRows: 3 }" :showCount="true" :disabled="disabled || (!isMain && !!formData.id)" />
</a-form-item>
</a-col>
</a-row>
@ -131,7 +160,8 @@
<a-row style="padding: 0px 20px;">
<a-col :span="24" v-show="directiveMediaBtnValue == 0">
<JImageUploadtz v-if="opeType == 'dmlook'"
:value="!!formData.previewFile ? formData.previewFile : defaultPrePic" maxCount="1" :disabled="disabled" />
:value="!!formData.previewFile ? formData.previewFile : defaultPrePic" maxCount="1"
:disabled="disabled" />
<JImageUploadtz v-else v-model:value="formData.previewFile" maxCount="1" :toOpe="true"
:bizPath="formComputedData.mediaFileSavePath" />
</a-col>
@ -151,7 +181,7 @@
<JUploadMP4 v-else v-model:value="formData.mp4File" :toOpe="true"
:bizPath="formComputedData.mediaFileSavePath" maxCount="1" fileType="mp4" />
</a-col>
<a-col :span="24" v-show="directiveMediaBtnValue == 3">
<!-- <a-col :span="24" v-show="directiveMediaBtnValue == 3">
<JImageUploadtz v-if="opeType == 'dmlook'"
:value="!!formData.immediateFile ? formData.immediateFile : defaultImmediatePic" maxCount="1" />
<JImageUploadtz v-else v-model:value="formData.immediateFile" :toOpe="true"
@ -163,7 +193,7 @@
maxCount="1" />
<JImageUploadtz v-else v-model:value="formData.immediateFileFocus" :toOpe="true"
:bizPath="formComputedData.mediaFileSavePath" maxCount="1" />
</a-col>
</a-col> -->
</a-row>
<!-- <a-row style="padding: 20px;">
<a-col :span="2">
@ -211,10 +241,11 @@ import { QuestionCircleOutlined } from '@ant-design/icons-vue';
import { DownOutlined } from '@ant-design/icons-vue';
import { uploadUrl } from '/@/api/common/api';
import { queryUpBizPrefix } from '/@/api/common/api'
import JImageUploadToOpe from '/@/components/Form/src/jeecg/components/JImageUploadToOpe.vue';
setInterval(()=>{
console.log("🌊 ~ formData:", formData)
},2000)
setInterval(() => {
console.log("🌊 ~ formData:", formData)
}, 2000)
const opeMediaAddress = import.meta.env.VITE_OPE_MEDIA_ADDRESS
const showDescription = ref(false);
@ -299,6 +330,7 @@ const formData = reactive<Record<string, any>>({
typeId: '',
instructionTagId: '',
directiveName: '',
serviceAttribute: '',
tollPrice: 0,
comPrice: 0,
izReimbursement: 'N',
@ -340,6 +372,7 @@ const validatorRules = reactive({
typeId: [{ required: true, message: '请选择服务类型!' },],
instructionTagId: [{ required: true, message: '请选择分类标签!' },],
directiveName: [{ required: true, message: '请输入服务指令名称!' },],
serviceAttribute: [{ required: true, message: '请选择服务属性!' },],
tollPrice: [{ required: true, message: '请输入收费价格!' }, { pattern: /^(([0-9]*)|([0]\.\d{0,4}|[1-9][0-9]*\.\d{0,4}))$/, message: '请输入正确的金额!' },],
comPrice: [{ required: false }, { pattern: /^(([0-9]*)|([0]\.\d{0,4}|[1-9][0-9]*\.\d{0,4}))$/, message: '请输入正确的金额!' },],
// izReimbursement: [{ required: true, message: '!' },],

View File

@ -24,7 +24,8 @@ const props = defineProps({
const emit = defineEmits(['update:directiveMediaBtnValue', 'change'])
const tabs = ['服务指令图片', '指令音频文件', '指令视频文件', '默认指令图标', '焦点指令图标']
// const tabs = ['', '', '', '', '']
const tabs = ['服务指令图片', '指令音频文件', '指令视频文件']
const activeTab = ref(props.directiveMediaBtnValue)
watch(() => props.directiveMediaBtnValue, (newVal) => {