schedulingAdd.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <template>
  2. <el-form
  3. class="timeNewStyle"
  4. label-width="100px"
  5. :model="formData"
  6. :rules="formRules"
  7. ref="formRu"
  8. >
  9. <el-form-item label="巡更日期" v-if="!params.isSingle" prop="partrolDate">
  10. <el-date-picker
  11. v-model="formData.partrolDate"
  12. value-format="yyyy-MM-dd"
  13. type="daterange"
  14. start-placeholder="开始日期"
  15. end-placeholder="结束日期"
  16. ></el-date-picker>
  17. </el-form-item>
  18. <el-form-item label="巡更日期" v-else>{{ thisDay.day | dateText }}</el-form-item>
  19. <template v-for="(item,index) in timePeriod">
  20. <el-form-item :label="item.partrolTime" :key="index">
  21. <el-cascader
  22. :ref="`userName${index}`"
  23. v-model="item.partolUserId"
  24. :props="defaultProps"
  25. :options="findUser"
  26. @change="findUserToggle(index)"
  27. ></el-cascader>
  28. </el-form-item>
  29. </template>
  30. </el-form>
  31. </template>
  32. <script>
  33. export default {
  34. props: ['params'],
  35. data() {
  36. return {
  37. timePeriod: [],
  38. findUser: [],
  39. thisDay: {},
  40. defaultProps: {
  41. value: 'id', // 唯一标识
  42. label: 'label', // 标签显示
  43. children: 'children',
  44. emitPath: false
  45. },
  46. formData: {
  47. partrolDate: []
  48. },
  49. formRules: {
  50. partrolDate: [this.$valid.selectRequired('时间段')]
  51. }
  52. };
  53. },
  54. filters: {
  55. dateText(va) {
  56. if (!!va) {
  57. let timeAr = va.split('-');
  58. return `${timeAr[0]}年${timeAr[1]}月${timeAr[2]}日`;
  59. } else {
  60. return '';
  61. }
  62. }
  63. },
  64. methods: {
  65. findUserToggle(index) {
  66. let thisObj = this.$refs[`userName${index}`][0].getCheckedNodes()[0];
  67. this.timePeriod[index].partolName = thisObj.label;
  68. },
  69. submit() {
  70. if (!this.params.isSingle) {
  71. this.$refs['formRu'].validate(valid => {
  72. if (valid) {
  73. this.add();
  74. }
  75. });
  76. } else {
  77. this.add();
  78. }
  79. },
  80. add() {
  81. let data = this.params.thisObj;
  82. let initData = {
  83. communityId: data.communityId,
  84. patrolRouteId: data.id,
  85. periodType: data.periodType,
  86. periodValue: data.periodValue,
  87. rosterUserDtos: this.timePeriod,
  88. partrolDate: this.thisDay.day
  89. };
  90. if (!this.params.isSingle) {
  91. initData.partrolDate = this.formData.partrolDate[0];
  92. initData.partrolEndDate = this.formData.partrolDate[1];
  93. }
  94. this.$http.post('/sc-community/patrolRoute/roster', initData).then(({ data, status, msg }) => {
  95. if (status == 0) {
  96. this.$message.success(msg);
  97. this.params.callback();
  98. this.$emit('close');
  99. } else {
  100. this.$message.error(msg);
  101. }
  102. });
  103. }
  104. },
  105. created() {
  106. this.findUser = this.params.findUser;
  107. if (!!this.params.dateDe) {
  108. this.thisDay = this.params.dateDe;
  109. }
  110. if (!!this.params.onj) {
  111. console.log(this.params.onj);
  112. }
  113. if (!!this.params.thisObj) {
  114. let arrs = this.params.thisObj.timePeriod.split(',');
  115. arrs.map(item => {
  116. this.timePeriod.push({
  117. partolName: '',
  118. partolUserId: '',
  119. partrolTime: item
  120. });
  121. });
  122. }
  123. },
  124. mounted() {}
  125. };
  126. </script>
  127. <style scoped lang='scss'>
  128. .timeNewStyle {
  129. /deep/ .el-date-editor--daterange.el-input__inner {
  130. width: 100%;
  131. }
  132. }
  133. </style>