InsuranceContractForm.vue 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. <template>
  2. <div>
  3. <zj-form-container ref="formRef" :formData="formData" :formRules="formRules">
  4. <zj-form-module title="基础信息" label-width="110px" :formData="formData" :formItems="formItems" :column="3">
  5. </zj-form-module>
  6. <zj-form-module title="网点信息" label-width="0px" :formData="formData" :formItems="items2"> </zj-form-module>
  7. </zj-form-container>
  8. <div v-if="type === 0 || type === 1" style="text-align: right">
  9. <el-button size="mini" @click="submit">确定</el-button>
  10. <el-button size="mini" @click="reset">重置</el-button>
  11. </div>
  12. </div>
  13. </template>
  14. <script>
  15. import { principalDetail, principalAdd, principalUpdate } from '@/api/difficultyFeeAuditorSet.js'
  16. import { dateFormat } from '@/utils/util'
  17. import pagingTransfer from '@/components/paging-transfer.vue'
  18. import { EventBus } from '@/utils/eventBus'
  19. import { required } from '@/components/template/rules_verify.js'
  20. import { getWebsit } from '@/api/customerManagement.js'
  21. export default {
  22. props: {
  23. type: {
  24. type: Number,
  25. default: null
  26. },
  27. item: {
  28. type: Object,
  29. default: null
  30. }
  31. },
  32. data() {
  33. return {
  34. disabled: this.type === 2,
  35. // 表单数据
  36. formData: {
  37. createBy: '',
  38. createTime: '',
  39. principal: '',
  40. updateBy: '',
  41. updateTime: '',
  42. workerInvolvePrincipalItems: [
  43. // {
  44. // belongCompany: '',
  45. // belongCompanyId: '',
  46. // id: '',
  47. // principalId: '',
  48. // websitName: '',
  49. // websitNumber: ''
  50. // }
  51. ]
  52. },
  53. formRules: {},
  54. formInline: {
  55. websitId: '',
  56. websitName: ''
  57. }
  58. }
  59. },
  60. computed: {
  61. formItems() {
  62. return [
  63. {
  64. md: 6,
  65. name: 'el-input',
  66. attributes: { disabled: this.disabled },
  67. formItemAttributes: { label: '审批负责人', prop: 'principal', rules: [...required] }
  68. },
  69. {
  70. name: 'slot-component',
  71. md: 24,
  72. attributes: {},
  73. formItemAttributes: { label: '', prop: '', rules: [] },
  74. render: (h, { props, onInput }) => {
  75. return null
  76. }
  77. },
  78. {
  79. md: 6,
  80. name: 'el-input',
  81. attributes: { disabled: true },
  82. formItemAttributes: { label: '创建人', prop: 'createBy' }
  83. },
  84. {
  85. md: 6,
  86. name: 'el-input',
  87. attributes: { disabled: true },
  88. formItemAttributes: { label: '创建时间', prop: 'createTime' }
  89. },
  90. {
  91. md: 6,
  92. name: 'el-input',
  93. attributes: { disabled: true },
  94. formItemAttributes: { label: '修改人', prop: 'updateBy' }
  95. },
  96. {
  97. md: 6,
  98. name: 'el-input',
  99. attributes: { disabled: true },
  100. formItemAttributes: { label: '修改时间', prop: 'updateTime' }
  101. }
  102. ]
  103. },
  104. items2() {
  105. return [
  106. {
  107. name: 'slot-component',
  108. md: 24,
  109. attributes: {},
  110. formItemAttributes: { label: '', 'label-width': '0px', prop: 'workerInvolvePrincipalItems', rules: [] },
  111. render: (h, { props, onInput }) => {
  112. var { formData } = props
  113. return (
  114. <div>
  115. <div>
  116. <el-form
  117. size="mini"
  118. inline={true}
  119. value={this.formInline}
  120. onInput={v => {
  121. this.formInline = v
  122. }}
  123. label-width="0px"
  124. >
  125. <el-form-item label="">
  126. <el-input
  127. value={this.formInline.websitId}
  128. onInput={v => {
  129. this.formInline.websitId = v
  130. }}
  131. placeholder="网点编号"
  132. ></el-input>
  133. </el-form-item>
  134. <el-form-item label="">
  135. <el-input
  136. value={this.formInline.websitName}
  137. onInput={v => {
  138. this.formInline.websitName = v
  139. }}
  140. placeholder="网点名称"
  141. ></el-input>
  142. </el-form-item>
  143. <el-form-item>
  144. <el-button
  145. type="primary"
  146. onClick={() => {
  147. EventBus.$emit('handlePaginaXXPPPBack22')
  148. }}
  149. >
  150. 查询
  151. </el-button>
  152. <el-button
  153. onClick={() => {
  154. this.formInline.websitId = ''
  155. this.formInline.websitName = ''
  156. this.$nextTick(() => {
  157. EventBus.$emit('handlePaginaXXPPPBack22')
  158. })
  159. }}
  160. >
  161. 重置
  162. </el-button>
  163. </el-form-item>
  164. </el-form>
  165. </div>
  166. <pagingTransfer
  167. handlePaginationCallBackKey="handlePaginaXXPPPBack22"
  168. value={this.formData.workerInvolvePrincipalItems}
  169. onInput={v => {
  170. this.formData.workerInvolvePrincipalItems = v
  171. }}
  172. left-columns={[
  173. { id: 'belongCompanyCode', label: '所属公司编号', width: '160' },
  174. { id: 'websitId', label: '网点编号', width: '120' },
  175. { id: 'websitName', label: '网点名称', width: '' }
  176. ]}
  177. right-columns={[
  178. { id: 'belongCompanyCode', label: '所属公司编号', width: '160' },
  179. { id: 'websitId', label: '网点编号', width: '120' },
  180. { id: 'websitName', label: '网点名称', width: '' }
  181. ]}
  182. show-pagination={false}
  183. pagination-call-back={this.paginationCallback}
  184. title-texts={['待选项', '已选项']}
  185. min-height="300px"
  186. table-row-key={row => row.websitId}
  187. />
  188. </div>
  189. )
  190. }
  191. }
  192. ]
  193. }
  194. },
  195. created() {
  196. // 获取详情
  197. if (this.type !== 0) {
  198. principalDetail({
  199. id: this.item.id
  200. }).then(res => {
  201. this.formData = { ...res.data }
  202. })
  203. }
  204. },
  205. methods: {
  206. paginationCallback({ pageIndex, pageSize }) {
  207. return new Promise(resolve => {
  208. getWebsit({ ...this.formInline, attr: 'SELF' }).then(res => {
  209. resolve({
  210. total: res.data.filter(item => item.type !== 'B').length,
  211. data: res.data
  212. .filter(item => item.type !== 'B')
  213. .map(item => {
  214. return {
  215. ...item,
  216. websitName: item.name
  217. }
  218. })
  219. })
  220. })
  221. })
  222. },
  223. submit() {
  224. this.$refs['formRef'].validate(valid => {
  225. console.log(this.formData)
  226. if (valid) {
  227. ;(this.formData.id ? principalUpdate : principalAdd)({
  228. ...this.formData
  229. }).then(res => {
  230. this.$message({
  231. type: 'success',
  232. message: `保存成功!`
  233. })
  234. this.$emit('success')
  235. })
  236. } else {
  237. console.log('error submit!!')
  238. return false
  239. }
  240. })
  241. },
  242. reset() {
  243. Object.assign(this.$data, this.$options.data())
  244. }
  245. }
  246. }
  247. </script>
  248. <style lang="scss" scoped></style>