|
@@ -512,6 +512,27 @@
|
|
|
|
|
|
|
|
</el-card>
|
|
</el-card>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <div v-if="setList.contentType == 21">
|
|
|
|
|
+ <el-card class="box-card">
|
|
|
|
|
+ <el-form-item label="短信模板" >
|
|
|
|
|
+ <el-select v-model="setList.smsTemplateId"
|
|
|
|
|
+ placeholder="请选择短信模板" size="mini"
|
|
|
|
|
+ @change="getSmsTemplateInfo(setList)" >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="template in smsTemplateList"
|
|
|
|
|
+ :key="template.tempId"
|
|
|
|
|
+ :label="template.title"
|
|
|
|
|
+ :value="template.tempId"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="内容预览" v-if="setList.smsTemplateContent">
|
|
|
|
|
+ <div style="color: #666; font-size: 12px; padding: 8px; border: 1px solid #eee; border-radius: 4px; background-color: #f9f9f9; max-height: 100px; overflow-y: auto;">
|
|
|
|
|
+ {{ setList.smsTemplateContent }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-card>
|
|
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<!-- <el-form-item label="添加短链"-->
|
|
<!-- <el-form-item label="添加短链"-->
|
|
|
<!-- v-if="content.type == 2 && setList.contentType == 1 ">-->
|
|
<!-- v-if="content.type == 2 && setList.contentType == 1 ">-->
|
|
@@ -719,6 +740,7 @@ import userVideo from "@/views/qw/userVideo/userVideo.vue";
|
|
|
import {
|
|
import {
|
|
|
getRoles,
|
|
getRoles,
|
|
|
} from "@/api/qw/sop";
|
|
} from "@/api/qw/sop";
|
|
|
|
|
+import { getSmsTempList } from "@/api/company/companySmsTemp";
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
name: "updateSopTemp",
|
|
name: "updateSopTemp",
|
|
@@ -761,6 +783,8 @@ export default {
|
|
|
//类别
|
|
//类别
|
|
|
sysQwSopSettingType: [],
|
|
sysQwSopSettingType: [],
|
|
|
|
|
|
|
|
|
|
+ smsTemplateList: [],
|
|
|
|
|
+
|
|
|
courseList: [],
|
|
courseList: [],
|
|
|
videoList: [],
|
|
videoList: [],
|
|
|
// 非单个禁用
|
|
// 非单个禁用
|
|
@@ -852,6 +876,8 @@ export default {
|
|
|
this.courseList = response.list;
|
|
this.courseList = response.list;
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+ this.loadSmsTemplates();
|
|
|
|
|
+
|
|
|
const id = this.$route.params && this.$route.params.id;
|
|
const id = this.$route.params && this.$route.params.id;
|
|
|
this.id = id;
|
|
this.id = id;
|
|
|
this.formType = this.$route.params && this.$route.params.type;
|
|
this.formType = this.$route.params && this.$route.params.type;
|
|
@@ -859,6 +885,54 @@ export default {
|
|
|
this.handleUpdate(id);
|
|
this.handleUpdate(id);
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+
|
|
|
|
|
+ // 获取短信模板信息
|
|
|
|
|
+ getSmsTemplateInfo(content) {
|
|
|
|
|
+ // 如果短信模板列表为空,先加载数据
|
|
|
|
|
+ if (this.smsTemplateList.length === 0) {
|
|
|
|
|
+ getSmsTempList().then(response => {
|
|
|
|
|
+ this.smsTemplateList = response.rows || response.data || [];
|
|
|
|
|
+ // 加载完成后再次调用自身来处理选中项
|
|
|
|
|
+ this.processSelectedSmsTemplate(content);
|
|
|
|
|
+ }).catch(error => {
|
|
|
|
|
+ console.error('加载短信模板失败:', error);
|
|
|
|
|
+ this.$message.error('加载短信模板失败');
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 直接处理选中项
|
|
|
|
|
+ this.processSelectedSmsTemplate(content);
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ // 处理选中的短信模板
|
|
|
|
|
+ processSelectedSmsTemplate(content) {
|
|
|
|
|
+ const selectedTemplate = this.smsTemplateList.find(item => item.tempId === content.smsTemplateId);
|
|
|
|
|
+ if (selectedTemplate) {
|
|
|
|
|
+ // 自动填充模板内容预览
|
|
|
|
|
+ this.$set(content, 'smsTemplateContent', selectedTemplate.content || selectedTemplate.templateContent || '');
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 清空相关内容
|
|
|
|
|
+ this.$set(content, 'smsTemplateContent', '');
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ // 加载短信模板列表
|
|
|
|
|
+ loadSmsTemplates() {
|
|
|
|
|
+ if (this.smsTemplateList.length > 0) {
|
|
|
|
|
+ return; // 如果已经有数据,不再重复加载
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ getSmsTempList().then(response => {
|
|
|
|
|
+ this.smsTemplateList = response.rows || response.data || [];
|
|
|
|
|
+ if (this.smsTemplateList.length === 0) {
|
|
|
|
|
+ this.$message.info('暂无可用的短信模板');
|
|
|
|
|
+ }
|
|
|
|
|
+ }).catch(error => {
|
|
|
|
|
+ console.error('加载短信模板失败:', error);
|
|
|
|
|
+ this.$message.error('加载短信模板失败');
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
handleClose(index, tag, content) {
|
|
handleClose(index, tag, content) {
|
|
|
content.addTag.splice(content.addTag.indexOf(tag), 1);
|
|
content.addTag.splice(content.addTag.indexOf(tag), 1);
|
|
|
},
|
|
},
|
|
@@ -1056,6 +1130,17 @@ export default {
|
|
|
if (data.content[j].setting[k].contentType == 4 && (data.content[j].setting[k].miniprogramTitle != null || data.content[j].setting[k].miniprogramTitle != "")) {
|
|
if (data.content[j].setting[k].contentType == 4 && (data.content[j].setting[k].miniprogramTitle != null || data.content[j].setting[k].miniprogramTitle != "")) {
|
|
|
data.content[j].setting[k].miniprogramTitle = this.truncateTextByByteLength(data.content[j].setting[k].miniprogramTitle, 60)
|
|
data.content[j].setting[k].miniprogramTitle = this.truncateTextByByteLength(data.content[j].setting[k].miniprogramTitle, 60)
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // 处理短信模板数据映射
|
|
|
|
|
+ if (data.content[j].setting[k].contentType == 21 && data.content[j].setting[k].smsTemplateId) {
|
|
|
|
|
+ // 根据选中的短信模板ID查找对应的模板信息
|
|
|
|
|
+ const selectedTemplate = this.smsTemplateList.find(template => template.tempId === data.content[j].setting[k].smsTemplateId);
|
|
|
|
|
+ if (selectedTemplate) {
|
|
|
|
|
+ // 设置短信模板的相关字段
|
|
|
|
|
+ this.$set(data.content[j].setting[k], 'smsTemplateCode', selectedTemplate.tempCode || '');
|
|
|
|
|
+ this.$set(data.content[j].setting[k], 'smsTemplateTitle', selectedTemplate.title || '');
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|