Newer
Older
xc-business-system / src / views / quality / template / components / templateContent.vue
liyaguang on 19 Oct 2023 2 KB feat(*): 模板管理页面
<!-- 模板内容管理 -->
<script name="TempalteContent" lang="ts" setup>
import { watch } from 'vue'

const $props = defineProps({
  data: {
    type: Array,
    required: true,
  },
})
const list = ref([])
watch(() => $props.data, (newVal) => {
  console.log(newVal, 'newVal')
  if (newVal.length) {
    list.value = $props.data
  }
  else {
    list.value.push({
      1: '',
      2: '',
      3: '',
      4: '',
      editable: true,
    })
  }
}, {
  deep: true,
})
const columns = ref([
  { text: '检查内容', value: '1', required: true },
  { text: '检查方法', value: '2', required: true },
  { text: '检查结果', value: '3', required: true },
  { text: '依据(GJB2725A 质量手册、程序文件)', value: '4', required: true },
])

const handler = (type: string, index: number) => {

}
</script>

<template>
  <detail-block title="模板内容管理">
    <el-table
      ref="multipleTableRef" :data="list" style="width: 100%;" border
    >
      <el-table-column align="center" label="序号" width="80" type="index" />
      <el-table-column
        v-for="item in columns" :key="item.value" :prop="item.value" :label="item.text"
        align="center"
      >
        <template #header>
          <span v-show="item.required && !$route.path.includes('detail')" style="color: red;">*</span><span>{{ item.text }}</span>
        </template>
        <template #default="scope">
          <span v-if="!scope.row.editable">{{ scope.row[item.value] }}</span>
          <el-input
            v-if="scope.row.editable" v-model="scope.row[item.value]" :autofocus="true"
            :placeholder="`${item.text}`" class="input"
          />
        </template>
      </el-table-column>
      <el-table-column align="center" label="操作" width="180">
        <template #default="scope">
          <el-button
            v-if="!scope.row.editable"
            size="small"
            type="primary"
            link
            @click="handler('update', scope.$index)"
          >
            编辑
          </el-button>
          <el-button
            v-if="scope.$index !== 0"
            size="small"
            type="danger"
            link
            @click="handler('delete', scope.$index)"
          >
            删除
          </el-button>
          <el-button
            size="small"
            type="primary"
            link
            @click="handler('insert', scope.$index)"
          >
            下方插入
          </el-button>
        </template>
      </el-table-column>
    </el-table>
  </detail-block>
</template>