add.vue 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  1. <template>
  2. <div>
  3. <el-button
  4. :size="btn_size ? btn_size : 'small'"
  5. type="primary"
  6. @click="show"
  7. >
  8. {{ title_btn ? $t(title_btn) : $t("新 建") }}
  9. </el-button>
  10. <el-drawer
  11. :title="title_drawer ? $t(title_drawer) : $t(`新建服务工作项`)"
  12. :visible.sync="dialogFormVisible"
  13. direction="rtl"
  14. append-to-body
  15. :show-close="false"
  16. size="700px"
  17. @close="onCancel"
  18. >
  19. <div class="drawer__panel">
  20. <el-row :gutter="20">
  21. <el-form
  22. :model="form"
  23. :rules="rules"
  24. ref="form"
  25. :label-width="tool.onlyZh('170px')"
  26. label-position="right"
  27. size="mini"
  28. >
  29. <el-col :span="24">
  30. <el-form-item :label="$t('工作名:')" prop="workname">
  31. <el-input
  32. v-model="form.workname"
  33. :placeholder="$t('请输入工作名')"
  34. ></el-input>
  35. </el-form-item>
  36. </el-col>
  37. <el-col :span="24">
  38. <el-form-item :label="$t('操作说明:')" prop="remarks">
  39. <el-input
  40. type="textarea"
  41. v-model="form.remarks"
  42. :placeholder="$t('请输入操作说明')"
  43. ></el-input>
  44. </el-form-item>
  45. </el-col>
  46. <el-col :span="24">
  47. <el-form-item :label="$t('上传附件:')" prop="fileupload">
  48. <el-radio-group v-model="form.fileupload">
  49. <el-radio :label="11">{{ $t("必填") }}</el-radio>
  50. <el-radio :label="1">{{ $t("非必填") }}</el-radio>
  51. <el-radio :label="0">{{ $t("无") }}</el-radio>
  52. </el-radio-group>
  53. </el-form-item>
  54. </el-col>
  55. <el-col :span="24">
  56. <el-form-item :label="$t('是否添加物料:')" prop="additem">
  57. <el-radio-group v-model="form.additem">
  58. <el-radio :label="11">{{ $t("必填") }}</el-radio>
  59. <el-radio :label="1">{{ $t("非必填") }}</el-radio>
  60. <el-radio :label="0">{{ $t("无") }}</el-radio>
  61. </el-radio-group>
  62. </el-form-item>
  63. </el-col>
  64. <el-col :span="24">
  65. <el-form-item :label="$t('上传全景影像:')" prop="panorama">
  66. <el-radio-group v-model="form.panorama">
  67. <el-radio :label="11">{{ $t("必填") }}</el-radio>
  68. <el-radio :label="1">{{ $t("非必填") }}</el-radio>
  69. <el-radio :label="0">{{ $t("无") }}</el-radio>
  70. </el-radio-group>
  71. </el-form-item>
  72. </el-col>
  73. <el-col :span="24">
  74. <el-form-item :label="$t('是否合格:')" prop="passcheck">
  75. <el-radio-group v-model="form.passcheck">
  76. <el-radio :label="1">{{ $t("是") }}</el-radio>
  77. <el-radio :label="0">{{ $t("否") }}</el-radio>
  78. </el-radio-group>
  79. </el-form-item>
  80. </el-col>
  81. <el-col :span="24">
  82. <el-form-item :label="$t('是否客户签名:')" prop="signature">
  83. <el-radio-group v-model="form.signature">
  84. <el-radio :label="11">{{ $t("必填") }}</el-radio>
  85. <el-radio :label="1">{{ $t("非必填") }}</el-radio>
  86. <el-radio :label="0">{{ $t("无") }}</el-radio>
  87. </el-radio-group>
  88. </el-form-item>
  89. </el-col>
  90. <el-col :span="24">
  91. <el-form-item
  92. :label="$t('内容是否需要验证表单:')"
  93. prop="formcheck"
  94. >
  95. <el-radio-group v-model="form.formcheck">
  96. <el-radio :label="1">{{ $t("是") }}</el-radio>
  97. <el-radio :label="0">{{ $t("否") }}</el-radio>
  98. </el-radio-group>
  99. </el-form-item>
  100. </el-col>
  101. <el-col :span="24">
  102. <el-form-item
  103. :label="$t('是否必填服务节点:')"
  104. prop="servicenode"
  105. >
  106. <el-radio-group v-model="form.servicenode">
  107. <el-radio :label="1">{{ $t("是") }}</el-radio>
  108. <el-radio :label="0">{{ $t("否") }}</el-radio>
  109. </el-radio-group>
  110. </el-form-item>
  111. </el-col>
  112. <el-col :span="24">
  113. <el-form-item :label="$t('是否施工日志汇报:')" prop="logreport">
  114. <el-radio-group v-model="form.logreport">
  115. <el-radio :label="1">{{ $t("是") }}</el-radio>
  116. <el-radio :label="0">{{ $t("否") }}</el-radio>
  117. </el-radio-group>
  118. </el-form-item>
  119. </el-col>
  120. </el-form>
  121. </el-row>
  122. </div>
  123. <div class="fixed__btn__panel">
  124. <el-button size="small" @click="onCancel" class="normal-btn-width">{{
  125. $t("取 消")
  126. }}</el-button>
  127. <el-button
  128. :loading="loading"
  129. class="normal-btn-width"
  130. size="small"
  131. :type="title_btn == '编辑' ? 'warning' : 'primary'"
  132. @click="onSubmit"
  133. >{{ title_btn == "编辑" ? $t("保 存") : $t("确 定") }}
  134. </el-button>
  135. </div>
  136. </el-drawer>
  137. </div>
  138. </template>
  139. <script>
  140. export default {
  141. name: "add",
  142. props: {
  143. btn_size: String,
  144. title_btn: String,
  145. title_drawer: String,
  146. data: Object,
  147. },
  148. data() {
  149. return {
  150. loading: false,
  151. dialogFormVisible: false,
  152. currentData: {},
  153. form: {
  154. sc_workpresetid: 0,
  155. workname: "",
  156. remarks: "",
  157. fileupload: 0, //附件上传,0不需要 1可上传 11必须上传
  158. signature: 0, //客户签名,0不需要 1可填写 11必须填写
  159. additem: 0, //物料添加,0不添加 1添加 11必须添加
  160. passcheck: 0, //合格确认,0否1是
  161. formcheck: 0, //表单验证,0 不需要 1 需要
  162. panorama: 0, //全景影像,0不需要 1可上传 11必须上传
  163. servicenode: 0, //服务节点,0 不需要 1 需要
  164. logreport: 0, //是否施工日志汇报,0 不需要 1 需要
  165. },
  166. rules: {
  167. workname: [
  168. {
  169. required: true,
  170. message: this.$t("请输入工作名"),
  171. trigger: "blur",
  172. },
  173. ],
  174. },
  175. };
  176. },
  177. methods: {
  178. //初始化
  179. show() {
  180. this.dialogFormVisible = true;
  181. if (this.title_btn == "编辑") {
  182. this.form = Object.assign({}, this.form, this.data);
  183. }
  184. },
  185. onSubmit() {
  186. this.$refs["form"].validate(async (valid) => {
  187. if (!valid) return false;
  188. this.loading = true;
  189. const res = await this.$api.requested({
  190. id: "2026051416454302",
  191. content: this.form,
  192. });
  193. if (res.code === 0) {
  194. this.loading = false;
  195. this.$message.error(
  196. res.msg || (this.title_btn == "编辑" ? this.$t("编辑失败") : this.$t("新建失败"))
  197. );
  198. return;
  199. }
  200. this.loading = false;
  201. this.$message.success(
  202. this.title_btn == "编辑" ? this.$t("编辑成功") : this.$t("新建成功")
  203. );
  204. this.$emit("onSuccess");
  205. this.$refs["form"].resetFields();
  206. this.dialogFormVisible = false;
  207. });
  208. },
  209. onCancel() {
  210. this.dialogFormVisible = false;
  211. this.$refs["form"].resetFields();
  212. },
  213. },
  214. };
  215. </script>