authprivSee.vue 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <!-- 经销商授权信息-查看 -->
  2. <template>
  3. <el-dialog title="查看" :visible.sync="visible" :close-on-click-modal="false" :close-on-press-escape="false">
  4. <el-form :model="formData" label-position="left" label-width="120px">
  5. <el-form-item v-for="column in formColumns" :label="column.title" :prop="column.key">
  6. <el-input v-if="column.type == 'Input'" readonly v-model="formData[column.key]" autocomplete="off"></el-input>
  7. <el-date-picker v-if="column.type == 'DateRange'" readonly v-model="formData[column.key]" type="daterange"
  8. format="yyyy-MM-dd " value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期"
  9. end-placeholder="结束日期"></el-date-picker>
  10. <el-date-picker v-if="column.type == 'Date'" readonly v-model="formData[column.key]" type="date"
  11. format="yyyy-MM-dd " value-format="yyyy-MM-dd" placeholder="选择日期"></el-date-picker>
  12. </el-form-item>
  13. </el-form>
  14. <div slot="footer" class="dialog-footer">
  15. <el-button @click="setVisible(false)">取 消</el-button>
  16. </div>
  17. </el-dialog>
  18. </template>
  19. <script>
  20. export default {
  21. name: 'authprivSee',
  22. data() {
  23. const arr2Obj = function (data, keyName, valueName) {
  24. return Object.fromEntries(
  25. data.map((item) => [item[keyName], item[valueName]])
  26. );
  27. };
  28. const formColumns = [
  29. { title: '经销商名称', key: 'dealerName', type: 'Input' },
  30. { title: '授权区/医院', key: 'authorizedAreaName', type: 'Input' },
  31. { title: '授权产品', key: 'authorizedProductsName', type: 'Input' },
  32. { title: '授权期限', key: 'time', type: 'DateRange' },
  33. { title: '授权书开具时间', key: 'issueTime', type: 'Date' },
  34. ];
  35. const initFormColumns = () => formColumns;
  36. const initFormData = () => arr2Obj(initFormColumns(), "key", "value")
  37. return {
  38. visible: false,
  39. formData: { ...initFormData() },
  40. formColumns: initFormColumns(),
  41. }
  42. },
  43. methods: {
  44. // 控制弹窗展示
  45. setVisible(val) {
  46. this.visible = val;
  47. },
  48. setFormData(data) {
  49. if (data.id) {
  50. let objData = { ...data };
  51. objData['time'] = [objData.startTime, objData.endTime];
  52. // delete data.startTime
  53. // delete data.endTime
  54. this.formData = objData;
  55. }
  56. },
  57. },
  58. created() {
  59. }
  60. }
  61. </script>
  62. <style lang="scss" scoped>
  63. .authpriv {
  64. width: calc(100% - 24px);
  65. height: 100%;
  66. margin: 10px
  67. }
  68. </style>