123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292 |
- <template>
- <div v-if="!excelViewStatus">
- <el-table :data="tableData" class="tableView">
- <el-table-column align="center" fixed label="管号" prop="seqNo" />
- <el-table-column align="center" fixed label="操作人" prop="checkUser" />
- <el-table-column
- align="center"
- label="是否破坏性检验"
- prop="isDestruction"
- >
- <template #default="scope">
- {{ scope.row.isDestruction ? "是" : "否" }}
- </template>
- </el-table-column>
- <!-- <el-table-column
- align="center"
- label="是否破坏性检验"
- prop="isDestruction"
- >
- <template #default="scope">
- {{ dictS.getLableByValue("excel_type", scope.row.formType) }}
- </template>
- </el-table-column> -->
- <el-table-column fixed="right" label="操作" width="200">
- <template #default="scope">
- <!-- <el-button
- v-if="scope.row.writeData !== ''"
- class="btnText"
- link
- type="primary"
- @click="handleLook(scope.row)"
- >
- 查看
- </el-button> -->
- <!-- <el-button
- class="btnText"
- link
- type="primary"
- @click="handleEdit(scope.row)"
- >
- 编辑
- </el-button> -->
- <el-button
- class="btnText"
- link
- type="primary"
- @click="del(scope.row.id)"
- >
- 删除
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- <Pagination
- v-model:limit="page.pageSize"
- v-model:page="page.pageNo"
- :total="page.total"
- size="large"
- @pagination="dataList"
- position="right"
- />
- </div>
- <!-- <div v-else class="excelView">
- <div class="view">
- <ExcelView
- ref="excelViewRef"
- v-model:data="excelData"
- :checkStatus="true"
- :option="excelOptions"
- :verifications="setting"
- />
- </div>
- <div class="opeara">
- <div>
- <el-button
- v-if="excelOptions.edit"
- class="btn"
- type="primary"
- @click="submitData"
- >提交
- </el-button>
- <el-button class="btn" @click="resetData"
- >{{ excelOptions.edit ? "取消" : "返回" }}
- </el-button>
- </div>
- </div>
- </div> -->
- </template>
- <script setup>
- import { shoujianList, seqList, delItem } from "@/api/prosteps/dianjian";
- import { setExcelData } from "@/api/prosteps/excel";
- import { useDictionaryStore, useProcessStore } from "@/store";
- const props = defineProps({
- userName: String,
- });
- const page = reactive({
- pageSize: 10,
- pageNo: 1,
- total: 0,
- });
- const emits = defineEmits(["editOpen"]);
- const del = async (id) => {
- const { code } = await delItem({
- id: id,
- });
- if (code == "200") {
- ElMessage.success("操作成功!");
- dataList();
- }
- };
- const handleEdit = (row) => {
- emits("editOpen", 1, row);
- };
- const setting = ref([]);
- const dictS = useDictionaryStore();
- const store = useProcessStore();
- const tableData = ref([]);
- const dataList = async () => {
- const { data } = await shoujianList({
- checkType: 2,
- pageNo: page.pageNo,
- pageSize: page.pageSize,
- processId: store.scanInfo.id,
- });
- tableData.value = data.records;
- page.total = data.totalCount;
- };
- const useExcelHook = () => {
- const excelViewStatus = ref(false);
- const excelData = ref(null);
- const excelViewRef = ref(null);
- const excelSelectRow = ref(null);
- const excelOptions = ref({
- opreaState: true,
- in: true,
- out: true,
- print: true,
- edit: true,
- inName: "",
- });
- const resetData = () => {
- if (excelViewRef.value) {
- excelViewRef.value.saveCellData();
- excelViewRef.value.reset();
- }
- excelViewStatus.value = false;
- excelData.value = null;
- excelSelectRow.value = null;
- excelOptions.value = {
- opreaState: true,
- in: true,
- out: true,
- print: true,
- edit: true,
- inName: "",
- };
- };
- const reset = async (row) => {
- excelData.value = "";
- const { data, code } = await setExcelData({
- excelData: excelData.value,
- formName: row.formName,
- excelFormId: row.excelFormId,
- formType: row.formType,
- processId: store.scanInfo.id,
- });
- if (code == "200") {
- ElMessage.success("操作成功!");
- row.dialogVisible = false;
- resetData();
- dataList();
- }
- };
- // const handleEdit = (row) => {
- // excelSelectRow.value = row;
- // if (row.writeData == "") {
- // excelData.value = JSON.parse(row.excelData);
- // } else {
- // excelData.value = JSON.parse(row.writeData);
- // }
- // excelOptions.value.inName = row.formName;
- // excelViewStatus.value = true;
- // setting.value = row.settings;
- // };
- const handleLook = (row) => {
- excelOptions.value.edit = false;
- excelData.value = JSON.parse(row.writeData);
- excelOptions.value.inName = row.formName;
- excelViewStatus.value = true;
- };
- const submitData = async () => {
- excelData.value = excelViewRef.value.getData();
- const { data, code } = await setExcelData({
- excelData: excelData.value,
- excelFormId: excelSelectRow.value.excelFormId,
- formName: excelSelectRow.value.formName,
- formType: excelSelectRow.value.formType,
- processId: store.scanInfo.id,
- workOrderId: store.scanInfo.workOrderId,
- userName: props.userName,
- });
- if (code === "200") {
- ElMessage.success("操作成功!");
- resetData();
- dataList();
- }
- };
- return {
- excelViewStatus,
- excelOptions,
- excelData,
- excelViewRef,
- resetData,
- submitData,
- handleLook,
- reset,
- };
- };
- const {
- excelViewStatus,
- excelOptions,
- excelData,
- excelViewRef,
- resetData,
- submitData,
- handleLook,
- reset,
- } = useExcelHook();
- onMounted(() => {
- dataList();
- });
- defineExpose({
- dataList,
- });
- </script>
- <style lang="scss" scoped>
- .btnText {
- font-size: $f20;
- color: black;
- }
- .excelView {
- width: 100%;
- height: calc(100vh - 275px);
- padding: 20px;
- display: flex;
- background-color: white;
- border-radius: 16px;
- .view {
- position: relative;
- flex: 1;
- height: calc(100vh - 325px);
- }
- .opeara {
- width: 200px;
- height: 100%;
- padding: 10px;
- display: flex;
- align-items: center;
- }
- }
- .tableView {
- width: 100%;
- height: calc(100vh - 370px);
- padding: 20px 0px;
- border-radius: 16px;
- }
- .btn {
- width: 180px;
- border-radius: 16px;
- height: 40px;
- font-size: 16px;
- margin: 10px 0;
- }
- .red-text {
- color: red;
- }
- .green-text {
- color: green;
- }
- :deep(.el-table__inner-wrapper::before) {
- display: none;
- }
- </style>
|