edit.html 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. {include file="/shopro/common/script" /}
  2. <style>
  3. .template-id-popover .question-filled {
  4. color: var(--el-color-warning);
  5. margin-right: 8px;
  6. }
  7. .notification-config-form .field .el-form-item__content {
  8. display: block;
  9. border: 1px solid var(--sa-border);
  10. max-width: 360px;
  11. background: var(--sa-background-hex-hover);
  12. border-radius: 4px;
  13. padding: 6px 0 2px 12px;
  14. color: var(--sa-place);
  15. }
  16. .notification-config-form .field-item {
  17. margin-bottom: 18px;
  18. }
  19. .notification-config-form .field-item .field-name {
  20. flex-shrink: 0;
  21. width: 100px;
  22. height: 32px;
  23. padding-right: 12px;
  24. }
  25. .notification-config-form .field-item .el-input {
  26. flex: 1;
  27. }
  28. .notification-config-form .field-item .el-input {
  29. flex: 1;
  30. }
  31. .notification-config-form .field-item .field-delete {
  32. margin-left: 8px;
  33. }
  34. .notification-config-form .field-tip {
  35. color: #ff5959;
  36. margin-bottom: 12px;
  37. }
  38. </style>
  39. <div id="addEdit" class="notification-config-form" v-cloak>
  40. <el-container class="panel-block">
  41. <el-main>
  42. <el-scrollbar height="100%">
  43. <el-form :model="form.model" :rules="form.rules" ref="formRef" label-width="100px">
  44. <el-form-item v-if="
  45. state.channel == 'WechatOfficialAccount' ||
  46. state.channel == 'WechatMiniProgram'
  47. " label="模板类型">
  48. <el-radio-group v-model="form.model.type">
  49. <el-radio label="default">默认配置</el-radio>
  50. <el-radio label="custom">自定义配置</el-radio>
  51. </el-radio-group>
  52. </el-form-item>
  53. <template v-if="
  54. (form.model.type == 'default' &&
  55. state.channel == 'WechatOfficialAccount') ||
  56. (form.model.type == 'default' && state.channel == 'WechatMiniProgram')
  57. ">
  58. <el-form-item label="通知标题">
  59. <el-input v-model="form.model.name" placeholder="注册完成给上级发送" disabled></el-input>
  60. </el-form-item>
  61. <el-form-item label="模板编号" v-if="state.channel != 'WechatMiniProgram'">
  62. <el-input v-model="form.model.wechat.temp_no" placeholder="" disabled></el-input>
  63. </el-form-item>
  64. <el-form-item label="模板Id">
  65. <el-input v-model="form.model.content.template_id" disabled>
  66. <template #append>
  67. <span v-if="!form.model.content.template_id" class="cursor-pointer"
  68. @click="getTemplateId('0')">立即获取</span>
  69. <el-popover v-if="form.model.content.template_id" popper-class="template-id-popover"
  70. v-model:visible="templateIdPopover.flag" :width="250" trigger="click">
  71. <div class="sa-flex mb-2">
  72. <el-icon class="question-filled">
  73. <question-filled />
  74. </el-icon>
  75. <div>确定要重新获取模板Id吗?</div>
  76. </div>
  77. <div class="sa-flex">
  78. <el-checkbox v-model="templateIdPopover.is_delete" label="删除旧模板"
  79. class="mr-4" true-label="1" false-label="0"></el-checkbox>
  80. <el-button size="small" @click="templateIdPopover.flag = false">取消
  81. </el-button>
  82. <el-button size="small" type="primary"
  83. @click="getTemplateId(templateIdPopover.is_delete)">确定
  84. </el-button>
  85. </div>
  86. <template #reference>
  87. {if $auth->check('shopro/notification/config/getTemplateId')}
  88. <span class="cursor-pointer">重新获取</span>
  89. {/if}
  90. </template>
  91. </el-popover>
  92. </template>
  93. </el-input>
  94. </el-form-item>
  95. <el-form-item label="模板" class="field">
  96. <div v-for="i in form.model.wechat.fields" :key="i" class="sa-flex">
  97. <div v-if="i.name">{{ i.name }}:</div>
  98. <div>{{ `{{${i.template_field}.DATA` }}}}</div>
  99. </div>
  100. </el-form-item>
  101. </template>
  102. <template v-if="form.model.type == 'custom' || state.channel == 'Sms'">
  103. <template v-if="form.model.content">
  104. <el-form-item label="模板消息Id">
  105. <el-input v-model="form.model.content.template_id" placeholder="请输入模版消息Id"></el-input>
  106. </el-form-item>
  107. <div class="field-item sa-flex" v-for="(item, index) in form.model.content.fields"
  108. :key="item">
  109. <div class="field-name sa-flex sa-row-right">
  110. <span v-if="item.field">{{ item.name }}</span>
  111. <el-input v-else v-model="item.name" placeholder="请输入名称"></el-input>
  112. </div>
  113. <el-input class="mr-4" v-model="item.template_field" placeholder="请输入模版名称">
  114. </el-input>
  115. <el-input v-model="item.value" placeholder="请输入默认值"></el-input>
  116. <el-button v-if="!item.field" class="field-delete" type="danger" link
  117. @click="onDeleteField(index)">
  118. 删除
  119. </el-button>
  120. </div>
  121. <el-form-item>
  122. <el-button icon="Plus" @click="onAddField">添加</el-button>
  123. </el-form-item>
  124. </template>
  125. </template>
  126. <template v-if="state.channel == 'Email'">
  127. <div class="field-item sa-flex" v-for="item in fieldList.data.fields" :key="item">
  128. <div class="field-name sa-flex sa-row-right">
  129. <span v-if="item.field">{{ item.name }}</span>
  130. </div>
  131. <el-input v-model="item.field" placeholder="请输入模版名称" disabled></el-input>
  132. </div>
  133. <div class="field-tip"> 请按照如下格式在文档中插入要显示的字段 p:{字段名} </div>
  134. <form role="form">
  135. <textarea id="emailContent" class="editor"></textarea>
  136. </form>
  137. </template>
  138. </el-form>
  139. </el-scrollbar>
  140. </el-main>
  141. <el-footer class="sa-footer--submit sa-flex sa-row-right">
  142. <el-button type="primary" @click="onConfirm">确定</el-button>
  143. </el-footer>
  144. </el-container>
  145. </div>