edit.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <template>
  2. <div class="cmain">
  3. <el-form ref="form" :model="form" :rules="rules" label-width="100px">
  4. <div class="bos">
  5. <div class="lab">
  6. <div class="bsg"></div>
  7. <div class="tit">基础信息</div>
  8. </div>
  9. <el-row>
  10. <el-col :span="12">
  11. <el-form-item label="项目名称" prop="projectName">
  12. <el-input v-model="form.projectName" placeholder="请输入项目名称" clearable :disabled="param.detail" />
  13. </el-form-item>
  14. </el-col>
  15. <el-col :span="12">
  16. <el-form-item label="项目编号" prop="num">
  17. <el-input v-model="form.num" placeholder="自动根据年月日生成" disabled />
  18. </el-form-item>
  19. </el-col>
  20. </el-row>
  21. <el-row>
  22. <el-col :span="12">
  23. <el-form-item label="项目周期" prop="dateRange">
  24. <el-date-picker v-model="form.dateRange" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" :disabled="param.detail" style="width: 100% !important"></el-date-picker>
  25. </el-form-item>
  26. </el-col>
  27. <el-col :span="12">
  28. <el-form-item label="结算日" prop="balanceDate">
  29. <el-date-picker clearable v-model="form.balanceDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择结算日" :disabled="param.detail"></el-date-picker>
  30. </el-form-item>
  31. </el-col>
  32. </el-row>
  33. <el-form-item label="附加说明" prop="contents">
  34. <el-input v-model="form.contents" type="textarea" placeholder="请输入附加说明" rows="3" clearable :disabled="param.detail" />
  35. </el-form-item>
  36. </div>
  37. </el-form>
  38. <div class="mfooter" v-if="!param.detail">
  39. <el-button type="primary" @click="submitForm">确 定</el-button>
  40. <el-button @click="$layer.close(layerid)">取 消</el-button>
  41. </div>
  42. </div>
  43. </template>
  44. <script>
  45. export default {
  46. data() {
  47. return {
  48. form: { dateRange: [] },
  49. rules: {
  50. projectName: [{ required: true, message: '不能为空', trigger: 'blur' }],
  51. dateRange: [{ required: true, message: '不能为空', trigger: 'blur' }],
  52. balanceDate: [{ required: true, message: '不能为空', trigger: 'blur' }]
  53. }
  54. };
  55. },
  56. props: {
  57. param: {
  58. type: Object,
  59. default: () => {
  60. return {};
  61. }
  62. },
  63. layerid: {
  64. type: String
  65. }
  66. },
  67. mounted() {
  68. if (this.param.id) {
  69. this.ajax({ url: '/work/project/detail/' + this.param.id }).then((response) => {
  70. response.data.dateRange=[];
  71. this.form = response.data;
  72. this.form.dateRange.push(this.form.startDate);
  73. this.form.dateRange.push(this.form.finishDate);
  74. });
  75. }
  76. },
  77. methods: {
  78. submitForm() {
  79. if (this.form.dateRange) {
  80. this.form.startDate = this.form.dateRange[0];
  81. this.form.finishDate = this.form.dateRange[1];
  82. }
  83. this.$refs['form'].validate((valid) => {
  84. if (valid) {
  85. if (this.form.id) {
  86. this.ajax({ method: 'post', url: '/work/project/edit', data: this.form }).then((response) => {
  87. this.$modal.msgSuccess('修改成功');
  88. this.$layer.close(this.layerid);
  89. this.$parent.getList();
  90. });
  91. } else {
  92. this.ajax({ method: 'post', url: '/work/project/add', data: this.form }).then((response) => {
  93. this.$modal.msgSuccess('新增成功');
  94. this.$layer.close(this.layerid);
  95. this.$parent.getList();
  96. });
  97. }
  98. }
  99. });
  100. }
  101. }
  102. };
  103. </script>