chenrui
2025-02-26 7480271afcd5bbee7cc9829aa845d5679e4e239f
src/views/CNAS/resourceDemand/standardMaterialAccept/component/Step1.vue
@@ -1,201 +1,198 @@
<!--<template>-->
<!--    <el-card class="card">-->
<!--        <el-col :span="12">-->
<!--            <el-form-item label="厂家代表">-->
<!--                <el-input v-model="model.acceptance.producer"></el-input>-->
<!--            </el-form-item>-->
<!--        </el-col>-->
<!--        <el-col :span="12">-->
<!--            <el-form-item label="相关附件">-->
<!--                <div class="table-between">-->
<!--                    <el-input v-model="model.acceptance.file" style="width: 82%;"></el-input>-->
<!--                    <el-upload-->
<!--                        ref="upload"-->
<!--                        style="float: left; margin: 0 12px 0 20px;"-->
<!--                        :action="action"-->
<!--                        :show-file-list="false"-->
<!--                        :on-success="onSuccess"-->
<!--                    >-->
<!--                        <el-button type="primary">-->
<!--                            附件上传-->
<!--                        </el-button>-->
<!--                    </el-upload>-->
<!--                </div>-->
<!--            </el-form-item>-->
<!--        </el-col>-->
<!--        <el-col :span="12">-->
<!--            <el-form-item label="接收人">-->
<!--                <el-input v-model="model.acceptance.recipient"></el-input>-->
<!--            </el-form-item>-->
<!--        </el-col>-->
<!--        <el-col :span="12">-->
<!--            <el-form-item label="接受签字">-->
<!--                <el-input v-model="model.acceptance.signature"></el-input>-->
<!--            </el-form-item>-->
<!--        </el-col>-->
<!--        <el-col :span="12">-->
<!--            <el-form-item label="验收情况">-->
<!--                <el-input v-model="model.acceptance.situation"></el-input>-->
<!--            </el-form-item>-->
<!--        </el-col>-->
<!--        <el-col :span="12">-->
<!--            <el-form-item label="安装调试情况">-->
<!--                <el-input v-model="model.acceptance.installation"></el-input>-->
<!--            </el-form-item>-->
<!--        </el-col>-->
<!--        <el-col :span="12">-->
<!--            <el-form-item label="清单" prop="substanceId" required>-->
<!--                <el-select v-model="model.acceptance.substanceId" placeholder="请选择" style="width: 100%">-->
<!--                    <el-option-->
<!--                        v-for="item in options"-->
<!--                        :key="item.value"-->
<!--                        :label="item.name"-->
<!--                        :value="item.id">-->
<!--                    </el-option>-->
<!--                </el-select>-->
<!--            </el-form-item>-->
<!--        </el-col>-->
<!--        <el-col :span="12">-->
<!--            <el-form-item label="到货日期">-->
<!--                <el-date-picker-->
<!--                    v-model="model.acceptance.arriveDate"-->
<!--                    align="right"-->
<!--                    type="date"-->
<!--                    placeholder="选择日期"-->
<!--                    style="width: 100%"-->
<!--                    value-format="yyyy-MM-dd"-->
<!--                >-->
<!--                </el-date-picker>-->
<!--            </el-form-item>-->
<!--        </el-col>-->
<!--        <el-col :span="12">-->
<!--            <el-form-item label="维修单位">-->
<!--                <el-input v-model="model.acceptance.maintenanceUnit"></el-input>-->
<!--            </el-form-item>-->
<!--        </el-col>-->
<!--        <el-col :span="24">-->
<!--            <el-form-item label="备件确认">-->
<!--                <el-button type="primary" style="float: right;" @click="addSpareTable">增加行</el-button>-->
<!--            </el-form-item>-->
<!--        </el-col>-->
<!--        <el-col :span="24">-->
<!--            <el-form-item>-->
<!--                <ZTTable-->
<!--                    style="margin-bottom: 20px;"-->
<!--                    :column="spareColumns"-->
<!--                    :table-data="model.list"-->
<!--                >-->
<!--                    <template slot="name" slot-scope="{ row, index }">-->
<!--                        <el-input v-if="row.isEdit" size="small" v-model="row.name"></el-input>-->
<!--                        <span v-else>{{ row.name }}</span>-->
<!--                    </template>-->
<!--                    <template slot="number" slot-scope="{ row, index }">-->
<!--                        <el-input v-if="row.isEdit" size="small" v-model="row.number"></el-input>-->
<!--                        <span v-else>{{ row.number }}</span>-->
<!--                    </template>-->
<!--                    <template slot="action" slot-scope="{ row, index }">-->
<!--                        <div v-if="row.isEdit">-->
<!--                            <el-button type="text" @click="save(index)">保存</el-button>-->
<!--                            <el-button type="text">取消</el-button>-->
<!--                        </div>-->
<!--                        <div v-else>-->
<!--                            <el-button type="text" @click="edit(index)">修改</el-button>-->
<!--                        </div>-->
<!--                    </template>-->
<!--                </ZTTable>-->
<!--            </el-form-item>-->
<!--        </el-col>-->
<!--    </el-card>-->
<!--</template>-->
<template>
  <el-card class="card">
    <el-col :span="12">
      <el-form-item label="厂家代表">
        <el-input v-model="model.acceptance.producer"></el-input>
      </el-form-item>
    </el-col>
    <el-col :span="12">
      <el-form-item label="相关附件">
        <div class="table-between">
          <el-input v-model="model.acceptance.file" style="width: 82%;"></el-input>
          <el-upload
            ref="upload"
            style="float: left; margin: 0 12px 0 20px;"
            :action="action"
            :show-file-list="false"
            :on-success="onSuccess"
          >
            <el-button type="primary">
              附件上传
            </el-button>
          </el-upload>
        </div>
      </el-form-item>
    </el-col>
    <el-col :span="12">
      <el-form-item label="接收人">
        <el-input v-model="model.acceptance.recipient"></el-input>
      </el-form-item>
    </el-col>
    <el-col :span="12">
      <el-form-item label="接受签字">
        <el-input v-model="model.acceptance.signature"></el-input>
      </el-form-item>
    </el-col>
    <el-col :span="12">
      <el-form-item label="验收情况">
        <el-input v-model="model.acceptance.situation"></el-input>
      </el-form-item>
    </el-col>
    <el-col :span="12">
      <el-form-item label="安装调试情况">
        <el-input v-model="model.acceptance.installation"></el-input>
      </el-form-item>
    </el-col>
    <el-col :span="12">
      <el-form-item label="清单" prop="substanceId" required>
        <el-select v-model="model.acceptance.substanceId" placeholder="请选择" style="width: 100%">
          <el-option
            v-for="item in options"
            :key="item.value"
            :label="item.name"
            :value="item.id">
          </el-option>
        </el-select>
      </el-form-item>
    </el-col>
    <el-col :span="12">
      <el-form-item label="到货日期">
        <el-date-picker
          v-model="model.acceptance.arriveDate"
          align="right"
          type="date"
          placeholder="选择日期"
          style="width: 100%"
          value-format="yyyy-MM-dd"
        >
        </el-date-picker>
      </el-form-item>
    </el-col>
    <el-col :span="12">
      <el-form-item label="维修单位">
        <el-input v-model="model.acceptance.maintenanceUnit"></el-input>
      </el-form-item>
    </el-col>
    <el-col :span="24">
      <el-form-item label="备件确认">
        <el-button type="primary" style="float: right;" @click="addSpareTable">增加行</el-button>
      </el-form-item>
    </el-col>
    <el-col :span="24">
      <el-form-item>
        <lims-table :tableData="model.list" :column="spareColumns" :height="'calc(100vh - 250px)'">
          <template slot="name" slot-scope="{ row, index }">
            <el-input v-if="row.isEdit" size="small" v-model="row.name"></el-input>
            <span v-else>{{ row.name }}</span>
          </template>
          <template slot="number" slot-scope="{ row, index }">
            <el-input v-if="row.isEdit" size="small" v-model="row.number"></el-input>
            <span v-else>{{ row.number }}</span>
          </template>
          <template slot="action" slot-scope="{ row, index }">
            <div v-if="row.isEdit">
              <el-button type="text" @click="save(index)">保存</el-button>
              <el-button type="text">取消</el-button>
            </div>
            <div v-else>
              <el-button type="text" @click="edit(index)">修改</el-button>
            </div>
          </template>
        </lims-table>
      </el-form-item>
    </el-col>
  </el-card>
</template>
<!--<script>-->
<!--import ZTTable from '@/components/caorui/ZTTable/index.vue';-->
<!--import { getStandardSubstanceAll } from "@/assets/api/api";-->
<!--import axios from 'axios';-->
<script>
// import { getStandardSubstanceAll } from "@/assets/api/api";
import axios from 'axios';
import limsTable from '@/components/Table/lims-table.vue'
import {
  getStandardSubstanceAll
} from '@/api/cnas/resourceDemand/standardMaterialAccept/standardMaterialAccept'
<!--export default {-->
<!--    components: {-->
<!--        ZTTable-->
<!--    },-->
<!--    props: {-->
<!--        model: {-->
<!--            type: Object,-->
<!--            default: () => {}-->
<!--        }-->
<!--    },-->
<!--    data() {-->
<!--        return {-->
<!--            spareColumns: [-->
<!--                {-->
<!--                    label: "名称",-->
<!--                    prop: "name",-->
<!--                    align: "center",-->
<!--                    dataType: "slot",-->
<!--                    slot: "name",-->
<!--                }, {-->
<!--                    label: "数量",-->
<!--                    prop: "number",-->
<!--                    align: "center",-->
<!--                    dataType: "slot",-->
<!--                    slot: "number",-->
<!--                }, {-->
<!--                    label: "操作",-->
<!--                    align: "center",-->
<!--                    dataType: "slot",-->
<!--                    slot: "action",-->
<!--                    width: 150-->
<!--                }-->
<!--            ],-->
<!--            options: []-->
<!--        }-->
<!--    },-->
<!--    computed: {-->
<!--        action() {-->
<!--            return `${this.javaApi}/${this.$api.personnel.saveCNASFile}`-->
<!--        }-->
<!--    },-->
<!--    mounted() {-->
<!--        this.getStand()-->
<!--    },-->
<!--    methods: {-->
<!--        async getStand() {-->
<!--            const { code, data } = await axios({-->
<!--                url: getStandardSubstanceAll,-->
<!--                method: 'get'-->
<!--            })-->
<!--            this.options = data-->
<!--        },-->
<!--        addSpareTable() {-->
<!--            this.model.list.push({-->
<!--                acceptanceId: this.model.acceptance.id,-->
<!--                name: '',-->
<!--                number: '',-->
<!--                isEdit: true-->
<!--            })-->
<!--        },-->
<!--        onSuccess(response) {-->
<!--            this.model.acceptance.file = response.data-->
<!--            this.$emit('update:model', this.model)-->
<!--        },-->
<!--        save(index) {-->
<!--            this.model.list[index].isEdit = false-->
<!--            this.$emit('update:model', this.model)-->
<!--        },-->
<!--        edit(index) {-->
<!--            this.model.list[index].isEdit = true-->
<!--        }-->
<!--    }-->
<!--}-->
<!--</script>-->
export default {
  components: {
    limsTable
  },
  props: {
    model: {
      type: Object,
      default: () => {}
    }
  },
  data() {
    return {
      spareColumns: [
        {
          label: "名称",
          prop: "name",
          align: "center",
          dataType: "slot",
          slot: "name",
        }, {
          label: "数量",
          prop: "number",
          align: "center",
          dataType: "slot",
          slot: "number",
        }, {
          label: "操作",
          align: "center",
          dataType: "slot",
          slot: "action",
          width: 150
        }
      ],
      options: []
    }
  },
  computed: {
    action() {
     return `${this.javaApi}/personBasicInfo/saveCNASFile`
    }
  },
  mounted() {
    this.getStand()
  },
  methods: {
    async getStand() {
      getStandardSubstanceAll().then(res => {
        this.options = res.data
      })
    },
    addSpareTable() {
      this.model.list.push({
        acceptanceId: this.model.acceptance.id,
        name: '',
        number: '',
        isEdit: true
      })
    },
    onSuccess(response) {
      this.model.acceptance.file = response.data
      this.$emit('update:model', this.model)
    },
    save(index) {
      this.model.list[index].isEdit = false
      this.$emit('update:model', this.model)
    },
    edit(index) {
      this.model.list[index].isEdit = true
    }
  }
}
</script>
<!--<style scoped>-->
<!--.card {-->
<!--    margin-top: 1em;-->
<!--    height: 56vh;-->
<!--    overflow-y: scroll;-->
<!--}-->
<!--.table-between {-->
<!--    display: flex;-->
<!--    justify-content: space-between;-->
<!--}-->
<!--</style>-->
<style scoped>
.card {
  margin-top: 1em;
  height: 56vh;
  overflow-y: scroll;
}
.table-between {
  display: flex;
  justify-content: space-between;
}
</style>