approval-results.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <template>
  2. <el-form ref="formRef" class="supplier-form" size="mini" label-width="80px" :model="formData" :rules="rules">
  3. <el-form-item label="审核状态" prop="status">
  4. <el-select v-model="formData.status" style="width:100%">
  5. <el-option label="修改供应商审批结果" value="10" />
  6. <el-option label="认同供应商审批结果" value="11" />
  7. </el-select>
  8. </el-form-item>
  9. <el-form-item label="审核备注" prop="remark">
  10. <el-input v-model="formData.remark" type="textarea" />
  11. </el-form-item>
  12. <template v-if="displayExpressField">
  13. <el-form-item label="退回至" prop="wsm_code">
  14. <search-stock
  15. :size="'mini'"
  16. :value="formData.wsm_code"
  17. placeholder="退货仓库"
  18. :is-detail="true"
  19. :is-relation="true"
  20. :names="wsm_code_name"
  21. :company-no="currentCompany"
  22. wsmtype="4"
  23. @searchChange="stockChange"
  24. />
  25. </el-form-item>
  26. <el-form-item label="">
  27. <el-input v-model="expressInfo" placeholder="退货仓库收货信息展示" disabled />
  28. </el-form-item>
  29. </template>
  30. <el-form-item>
  31. <div style="width:100%;display:flex;justify-content:flex-end">
  32. <el-button type="primary" @click="submit">提交</el-button>
  33. </div>
  34. </el-form-item>
  35. </el-form>
  36. </template>
  37. <script>
  38. import companyHelper from '@/mixins/companyHelper'
  39. export default {
  40. name: 'ApprovalResults',
  41. mixins: [companyHelper],
  42. props: ['sitem'],
  43. data() {
  44. return {
  45. company: '',
  46. formData: {
  47. status: '10',
  48. remark: '',
  49. wsm_code: ''
  50. },
  51. wsm_code: '',
  52. wsm_name: '',
  53. wsm_code_name: '',
  54. expressInfo: ''
  55. }
  56. },
  57. computed: {
  58. displayExpressField() {
  59. return this.formData.status === '11'
  60. },
  61. rules() {
  62. const { status } = this.formData
  63. return ({
  64. wsm_code: [
  65. {
  66. type: 'array',
  67. required: true,
  68. trigger: 'change',
  69. message: '请选择退货仓库'
  70. }
  71. ],
  72. status: [
  73. {
  74. required: true,
  75. trigger: 'change',
  76. message: '请选择退货仓库'
  77. }
  78. ],
  79. remark: [
  80. {
  81. required: status === '10',
  82. trigger: 'change',
  83. message: '请输入审核备注'
  84. }
  85. ]
  86. })
  87. }
  88. },
  89. watch: {
  90. 'formData.status'(status) {
  91. // this
  92. this.formData = {
  93. status,
  94. remark: '',
  95. wsm_code: ''
  96. }
  97. }
  98. },
  99. mounted() {
  100. },
  101. methods: {
  102. async stockChange(e) {
  103. const { code, label, contactor, mobile, addr_cn } = e
  104. this.expressInfo = `${contactor}-${mobile}-${addr_cn}`
  105. this.wsm_code_name = label || ''
  106. this.wsm_code = code || ''
  107. this.formData.wsm_code = code ? [code] : []
  108. this.$refs.formRef.validateField('wsm_code')
  109. },
  110. submit() {
  111. this.$refs.formRef.validate(isValid => {
  112. if (!isValid) return
  113. const { status } = this.formData
  114. let _status = status
  115. if (this.sitem.is_receive === '0' && status === '11') {
  116. _status = '5'
  117. }
  118. const { wsm_code } = this.formData
  119. const params = {
  120. ...this.formData,
  121. status: _status,
  122. wsm_code: Array.isArray(wsm_code) ? wsm_code[0] : wsm_code
  123. }
  124. this.$emit('changeStatus', params)
  125. })
  126. }
  127. }
  128. }
  129. </script>
  130. <style lang="scss" scoped>
  131. .supplier-form{
  132. ::v-deep(.el-form-item){
  133. width: 600px;
  134. }
  135. }
  136. </style>