addRelationShip.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <template>
  2. <div class="change-relation-ship">
  3. <el-dialog
  4. :title="values.addShip"
  5. :visible.sync="addShipDialog"
  6. >
  7. <el-form
  8. :model="ruleForm"
  9. status-icon
  10. :rules="rules"
  11. ref="ruleForm"
  12. label-width="100px"
  13. class="demo-ruleForm"
  14. >
  15. <p class="mb-20 color-AAA">{{values.codeTip}}</p>
  16. <el-form-item
  17. :label="values.codeTitle"
  18. prop="code"
  19. class="mb-20"
  20. >
  21. <el-input
  22. v-model="ruleForm.code"
  23. autocomplete="off"
  24. :placeholder="values.pleaseEnter"
  25. />
  26. </el-form-item>
  27. <el-row class="mb-20">
  28. <el-col :span="12">
  29. <p class="mb-20">{{values.mainObject}}
  30. <span class="fw-bold color-AAA">(包括:XXXX类型,XXXX类型)限制条件</span>
  31. </p>
  32. <el-form-item
  33. prop="main"
  34. >
  35. <el-input
  36. v-model="ruleForm.main"
  37. autocomplete="off"
  38. :placeholder="values.pleaseEnterCode"
  39. :disabled="disabled"
  40. />
  41. </el-form-item>
  42. </el-col>
  43. <el-col :span="12">
  44. <p class="mb-20">{{values.affiliatedObject}}
  45. <span class="fw-bold color-AAA ">(包括:XXXX类型,XXXX类型)限制条件</span>
  46. </p>
  47. <el-form-item
  48. v-for="(item,index) in ruleForm.codeList"
  49. :key="index"
  50. :prop="`codeList.${index}.value`"
  51. :rules="rules.codeList"
  52. >
  53. <el-input
  54. v-model="item.value"
  55. :placeholder="values.pleaseEnterCode"
  56. :disabled="disabled"
  57. />
  58. <el-button
  59. @click.prevent="removeCode(item)"
  60. icon="el-icon-circle-close"
  61. type="text"
  62. :disabled="disabled"
  63. />
  64. </el-form-item>
  65. <el-form-item>
  66. <el-button
  67. @click="addCode"
  68. icon="el-icon-circle-plus-outline"
  69. style="width: 220px;"
  70. :disabled="disabled"
  71. />
  72. </el-form-item>
  73. </el-col>
  74. </el-row>
  75. <el-form-item>
  76. <el-button
  77. type="primary"
  78. class="fr ml-20"
  79. @click="submitForm('ruleForm')"
  80. >{{values.add}}
  81. </el-button>
  82. <el-button
  83. class="fr"
  84. @click="addShipDialog = false"
  85. >{{values.cancel}}
  86. </el-button>
  87. </el-form-item>
  88. </el-form>
  89. </el-dialog>
  90. </div>
  91. </template>
  92. <script>
  93. export default {
  94. name: "addRelationShip",
  95. props: ['values'],
  96. data() {
  97. var checkCode = (rule, value, callback) => {
  98. //TODO
  99. callback()
  100. this.disabled = false
  101. }
  102. var checkMain = (rule, value, callback) => {
  103. //TODO
  104. callback()
  105. }
  106. var codeList = (rule, value, callback) => {
  107. //TODO
  108. callback()
  109. }
  110. return {
  111. addShipDialog: false,
  112. disabled: true,
  113. ruleForm: {
  114. code: '',
  115. main: '',
  116. codeList: [{
  117. value: ''
  118. }]
  119. },
  120. rules: {
  121. code: [
  122. {required: true, message: '请输入对应识别编码', trigger: 'blur'},
  123. {validator: checkCode, trigger: 'blur'}
  124. ],
  125. main: [
  126. {required: true, message: '请输入对应识别编码', trigger: 'blur'},
  127. {validator: checkMain, trigger: 'blur'}
  128. ],
  129. codeList: [
  130. {required: true, message: '请输入对应识别编码', trigger: 'blur'},
  131. {validator: codeList, trigger: 'blur'}
  132. ]
  133. }
  134. }
  135. },
  136. methods: {
  137. addCode() {
  138. this.ruleForm.codeList.push({
  139. value: '',
  140. key: Date.now()
  141. })
  142. },
  143. removeCode(item) {
  144. var index = this.ruleForm.codeList.indexOf(item)
  145. if (index !== -1) {
  146. this.ruleForm.codeList.splice(index, 1)
  147. }
  148. },
  149. submitForm(formName) {
  150. this.$refs[formName].validate(valid => {
  151. if (valid) {
  152. this.addShipDialog = false
  153. console.log('success')
  154. } else {
  155. console.log('error')
  156. return false
  157. }
  158. })
  159. }
  160. }
  161. }
  162. </script>
  163. <style scoped lang="less">
  164. @color-text: #AAA;
  165. .change-relation-ship {
  166. /deep/ .el-form-item__label {
  167. width: auto !important;
  168. }
  169. .fr {
  170. float: right;
  171. }
  172. .mb-20 {
  173. margin-bottom: 20px;
  174. }
  175. .ml-20 {
  176. margin-left: 20px;
  177. }
  178. .color-AAA {
  179. color: @color-text
  180. }
  181. .fw-bold {
  182. font-weight: bold;
  183. }
  184. }
  185. </style>