马宇豪
2024-07-08 20b0ce2db27b64a60de60aee05dedd448099e330
src/views/newSpecialWorkSystem/workTicket/sqjl/index.vue
@@ -6,7 +6,7 @@
                    <el-row class="homeCard">
                     <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
                        <span>时间筛选:</span>
                        <el-date-picker v-model="timeRange" value-format="YYYY-MM-DD HH:mm:ss" type="datetimerange" @change="giveTime()" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
                        <el-date-picker v-model="timeRange" value-format="YYYY-MM-DD" type="daterange" @change="giveTime()" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" />
                      </div>
                      <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
                        <span>负责人:</span>
@@ -34,6 +34,13 @@
                          />
                        </el-select>
                      </div>
                      <div class="basic-line" style="display:flex;white-space:nowrap;line-height: 40px">
                        <span>作业票编号:</span>
                        <el-input
                            v-model="searPara.workPermitNo"
                            placeholder="请输入作业票编号"
                        />
                      </div>
                      <div style="margin-left: 20px">
                        <el-button type="primary" @click="searchRecord">查询</el-button>
                        <el-button plain @click="clearSearch">重置</el-button>
@@ -50,11 +57,21 @@
                                <el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" />
                            </el-row>
                            <el-table ref="multipleTableRef" :data="applyData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }">
                              <el-table-column property="workPermitNo" label="作业编号" align="center">
                                <template #default="scope">
                                  {{scope.row.workPermitNo?scope.row.workPermitNo:'—'}}
                                </template>
                              </el-table-column>
                                <el-table-column property="seDepName" label="事业部" align="center"/>
                                <el-table-column property="applyDepName" label="作业所在车间" align="center"/>
                                <el-table-column property="workContent" label="作业内容" align="center"/>
                                <el-table-column property="workTypeDesc" label="作业类型" align="center"/>
                                <el-table-column property="workDepName" label="作业单位" align="center"/>
                                <el-table-column label="作业单位" align="center">
                                  <template #default="scope">
                                    <span v-if="scope.row.workDepList && scope.row.workDepList.length>0">{{scope.row.workDepList.map(i=>i.workDepName).join(',')}}</span>
                                    <span v-else>{{scope.row.workDepName }}</span>
                                  </template>
                                </el-table-column>
                                <el-table-column property="headList" label="负责人及电话" align="center">
                                  <template #default="scope">
                                    {{scope.row.headList.map(i=>{return i.userName + '(' + i.phone+ ')' }).join(',')}}
@@ -87,7 +104,7 @@
                                    {{scope.row.guardianList.length}}
                                  </template>
                                </el-table-column>
                                <el-table-column label="风险研判" align="center">
                                <el-table-column label="作业状态" align="center">
                                    <template #default="scope">
                                        <el-tag>{{ statusList.find(i=>i.value === scope.row.status)?.label }}</el-tag>
                                    </template>
@@ -98,7 +115,7 @@
                                        <el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
<!--                                        <el-button link type="success" size="small" :icon="Finished">修改</el-button>-->
<!--                                        <el-button link type="success" size="small" :icon="Download">正式办票</el-button>-->
<!--                                        <el-button :disabled="scope.row.status == 7 ? false : true" link type="primary" size="small" :icon="Download" @click="downLoadBtn(scope.row)">导出作业票</el-button>-->
                                        <el-button link type="primary" size="small" :icon="Download" @click="downLoadRecord(scope.row)">作业票预览</el-button>
                                    </template>
                                </el-table-column>
                            </el-table>
@@ -203,15 +220,15 @@
                        </span>
                    </template>
                </el-dialog>
                <el-dialog v-model="downLoadDialog" title="提示" width="30%" center>
                    <span>您确定要导出该条记录吗?</span>
                    <template #footer>
                                <span class="dialog-footer">
                                    <el-button @click="downLoadDialog = false" size="default">取消</el-button>
                                    <el-button type="primary" @click="conFirmDownLoad" size="default">确认</el-button>
                                </span>
                    </template>
                </el-dialog>
<!--                <el-dialog v-model="downLoadDialog" title="提示" width="30%" center>-->
<!--                    <span>您确定要导出该条记录吗?</span>-->
<!--                    <template #footer>-->
<!--                                <span class="dialog-footer">-->
<!--                                    <el-button @click="downLoadDialog = false" size="default">取消</el-button>-->
<!--                                    <el-button type="primary" @click="conFirmDownLoad" size="default">确认</el-button>-->
<!--                                </span>-->
<!--                    </template>-->
<!--                </el-dialog>-->
<!--            </el-tab-pane>-->
<!--            <el-tab-pane label="已通过" name="2">-->
<!--                <div style="height: 100%">-->
@@ -276,13 +293,10 @@
    dialogDetails: boolean;
    dialogStatus: boolean;
    deleteDialog: boolean;
    downLoadDialog: boolean;
    pageIndex1: number;
    pageSize1: number;
    chosenIndex: null | number;
    deleteId: null | number;
    downLoadId: null | number;
    downLoadName: string;
    totalSize1: number;
    activeName: string;
    addRecord: {};
@@ -326,6 +340,7 @@
            searPara:{
              startTime: '',
              endTime: '',
              workPermitNo: '',
              workType: null,
              headUserName: '',
              secondDepId: null
@@ -340,13 +355,10 @@
            dialogDetails: false,
            dialogStatus: false,
            deleteDialog: false,
            downLoadDialog: false,
            addRecord: {},
            details: {},
            statusInfo: {},
            deleteId: null,
            downLoadId: null,
            downLoadName: '',
            deleteArr: [],
            dep4List: [
              {id:49,name:'电石事业部'},
@@ -366,48 +378,72 @@
            ],
          statusList: [
            {
              value: -1,
              label: '废止'
            },
            {
              value: 0,
              label: '风险研判中'
              label: '风险研判'
            },
            {
              value: 1,
              label: '票证办理中'
              label: '票证办理'
            },
            {
              value: 2,
              label: '安全措施确认中'
              label: '气体分析'
            },
            {
              value: 3,
              label: '培训交底中'
              label: '安全措施确认,培训交底'
            },
            {
              value: 4,
              label: '气体分析中'
              label: '安全措施确认'
            },
            {
              value: 5,
              label: '作业开始'
              label: '培训交底'
            },
            {
              value: 6,
              label: '作业监护'
              label: '部门审批'
            },
            {
              value: 7,
              label: '作业结束'
              label: '作业票填报结束'
            },
            {
              value: 8,
              label: '作业验收'
              label: '作业气体分析不合格'
            },
            {
              value: 9,
              label: '安全措施确认,培训交底中'
              label: '审批未通过'
            },
            {
              value: 10,
              label: '开始'
            },
            {
              value: 11,
              label: '监护'
            },
            {
              value: 12,
              label: '结束'
            },
            {
              value: 13,
              label: '待验收'
            },
            {
              value: 14,
              label: '验收完成'
            },
            {
              value: 15,
              label: '取消'
            },
            {
              value: 16,
              label: '废止作业票'
            }
          ],
          timeRange: []
@@ -505,6 +541,7 @@
        // 关键词查询记录
        const searchRecord = async () => {
            state.pageIndex1 = 1
            getListByPage();
        };
        // 重置搜索
@@ -513,10 +550,12 @@
            state.searPara = {
              startTime: '',
              endTime: '',
              workPermitNo: '',
              workType: null,
              headUserName: '',
              secondDepId: null
            };
            state.pageIndex1 = 1
            getListByPage();
        };
@@ -567,26 +606,21 @@
            state.deleteDialog = false;
        };
        // 导出图表
        const downLoadBtn = (row:any) =>{
            state.downLoadId = row.workApplyId;
            state.downLoadName = row.workTypeDesc + row.workPermitNo
            state.downLoadDialog = true;
        }
        // 导出方法
        const downLoadRecord = async (data: any) => {
        const downLoadRecord = (row: any) => {
            // let res = await workApplyApi().postPrinting(data);
            axios.post(import.meta.env.VITE_API_URL + `/work/apply/printingPdf`,data,{headers:{'Content-Type': 'application/json','Authorization': `${Cookies.get('token')}`,'uid':`${Cookies.get('uid')}`},responseType: 'blob'}).then(res=>{
            console.log(row,555)
            axios.post(import.meta.env.VITE_API_URL + `/specialwork9step/work/down/load/pdf`,{ id: row.id},{headers:{'Content-Type': 'application/json','Authorization': `${Cookies.get('token')}`,'uid':`${Cookies.get('uid')}`},responseType: 'blob'}).then(res=>{
                if (res) {
                    const link = document.createElement('a')
                    let blob = new Blob([res.data],{type: 'application/pdf'})
                    link.style.display = "none";
                    link.href = URL.createObjectURL(blob); // 创建URL
                    link.setAttribute("download", state.downLoadName + "作业证.pdf");
                    document.body.appendChild(link);
                    link.click();
                    document.body.removeChild(link);
                    link.setAttribute("download", row.workTypeDesc + row.workPermitNo + "作业证.pdf");
                    document.body.appendChild(link)
                    window.open(link.href)
                    document.body.removeChild(link)
                } else {
                    ElMessage({
                        type: 'warning',
@@ -595,11 +629,6 @@
                }
            })
        };
        const conFirmDownLoad = () => {
            downLoadRecord({ applyWorkId: state.downLoadId });
            state.downLoadDialog = false;
        };
        const handleSizeChange1 = (val: number) => {
@@ -649,9 +678,8 @@
            viewRecord,
            viewStatus,
            deleteRecordBtn,
            downLoadBtn,
            downLoadRecord,
            conFirmDelete,
            conFirmDownLoad,
            getListByPage,
            handleSizeChange1,
            handleCurrentChange1,