dislogTip.vue 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <template>
  2. <div class="dislogTipBox">
  3. <BaseDialog
  4. width="900px"
  5. :isShow.sync="isShow"
  6. title="催款提醒"
  7. @close="close"
  8. @submit="submitForm"
  9. @open="init"
  10. >
  11. <el-form
  12. inline
  13. hide-required-asterisk
  14. :model="form"
  15. :rules="rules"
  16. ref="form"
  17. label-width="100px"
  18. >
  19. <div>
  20. <el-form-item label="最新提醒:">
  21. {{ $methodsTools.onlyForma(orderInfo.lastTime) || "--" }}
  22. </el-form-item>
  23. </div>
  24. <div>
  25. <el-form-item prop="noteType" label="提醒设置:">
  26. <el-select v-model="form.noteType" placeholder="请选择提醒类型">
  27. <el-option
  28. label="取消提醒"
  29. v-if="orderInfo.noteId"
  30. :value="0"
  31. ></el-option>
  32. <el-option label="立即提醒" :value="1"></el-option>
  33. <el-option label="每天提醒" :value="2"></el-option>
  34. <el-option label="每周提醒" :value="3"></el-option>
  35. <el-option label="每月提醒" :value="4"></el-option>
  36. </el-select>
  37. </el-form-item>
  38. <el-form-item prop="weekTime" label="" v-if="form.noteType == 3">
  39. <el-select
  40. v-model="form.weekTime"
  41. multiple
  42. placeholder="请选择星期"
  43. key="3"
  44. >
  45. <el-option
  46. v-for="week in weekList"
  47. :key="week.value"
  48. :label="week.label"
  49. :value="week.value"
  50. ></el-option>
  51. </el-select>
  52. </el-form-item>
  53. <el-form-item prop="monthTime" label="" v-if="form.noteType == 4">
  54. <el-select
  55. v-model="form.monthTime"
  56. multiple
  57. placeholder="请选择日期"
  58. key="4"
  59. >
  60. <el-option
  61. v-for="day in 31"
  62. :key="day"
  63. :label="day"
  64. :value="day"
  65. ></el-option>
  66. </el-select>
  67. </el-form-item>
  68. <el-form-item prop="dayTime" label="" v-if="form.noteType > 1"
  69. ><el-time-picker
  70. format="HH:mm"
  71. value-format="HH:mm"
  72. v-model="form.dayTime"
  73. placeholder="选择时间"
  74. >
  75. </el-time-picker>
  76. </el-form-item>
  77. </div>
  78. </el-form>
  79. </BaseDialog>
  80. </div>
  81. </template>
  82. <script>
  83. import { orderNote, orderNoteEdit } from "@/api/financed/index";
  84. export default {
  85. name: "DislogTip",
  86. props: {
  87. dialogVisible: {
  88. type: Boolean,
  89. default: false,
  90. },
  91. orderInfo: {
  92. type: Object,
  93. default: () => {
  94. return {};
  95. },
  96. },
  97. },
  98. data() {
  99. return {
  100. form: {},
  101. rules: {
  102. dayTime: [{ required: true, message: "请选择时间", trigger: "change" }],
  103. weekTime: [
  104. { required: true, message: "请选择星期", trigger: "change" },
  105. ],
  106. monthTime: [{ required: true, message: "请选择日期", trigger: "blur" }],
  107. },
  108. weekList: [
  109. { label: "星期一", value: "1" },
  110. { label: "星期二", value: "2" },
  111. { label: "星期三", value: "3" },
  112. { label: "星期四", value: "4" },
  113. { label: "星期五", value: "5" },
  114. { label: "星期六", value: "6" },
  115. { label: "星期日", value: "7" },
  116. ],
  117. dayList: [],
  118. value: [],
  119. };
  120. },
  121. mounted() {},
  122. methods: {
  123. init() {
  124. this.resetForm();
  125. },
  126. close() {
  127. this.$refs["form"].resetFields();
  128. },
  129. submit() {},
  130. resetForm() {
  131. let {
  132. noteId,
  133. orderSn,
  134. tenantId,
  135. dayTime,
  136. weekTime,
  137. monthTime,
  138. noteType,
  139. } = this.orderInfo;
  140. this.form = {
  141. noteType: noteType || 1,
  142. id: noteId,
  143. dayTime: dayTime,
  144. weekTime: weekTime ? weekTime.split(",") : [],
  145. monthTime: monthTime ? monthTime.split(",") : [],
  146. orderSn: orderSn,
  147. tenantId: tenantId,
  148. };
  149. },
  150. submitForm() {
  151. this.$refs["form"].validate((valid) => {
  152. if (valid) {
  153. let form = JSON.parse(JSON.stringify(this.form));
  154. let { noteType, weekTime, monthTime } = form;
  155. delete form.weekTime;
  156. delete form.monthTime;
  157. if (noteType == 3) {
  158. form.weekTime = weekTime.toString();
  159. }
  160. if (noteType == 4) {
  161. form.monthTime = monthTime.toString();
  162. }
  163. if (noteType == 0) {
  164. form.status = -1;
  165. form.noteType = undefined;
  166. }
  167. if (form.id) {
  168. orderNoteEdit(form).then((res) => {
  169. this.$message.success("催款提醒修改成功");
  170. this.isShow = false;
  171. this.$emit("search");
  172. });
  173. } else {
  174. orderNote(form).then((res) => {
  175. this.$message.success("催款提醒设置成功");
  176. this.isShow = false;
  177. this.$emit("search");
  178. });
  179. }
  180. } else {
  181. return false;
  182. }
  183. });
  184. },
  185. },
  186. computed: {
  187. isShow: {
  188. get() {
  189. return this.dialogVisible;
  190. },
  191. set(val) {
  192. this.$emit("update:dialogVisible", false);
  193. },
  194. },
  195. },
  196. };
  197. </script>