Browse Source

首件优化还原

duy 2 years ago
parent
commit
e9d2c17f24
2 changed files with 0 additions and 901 deletions
  1. 0 901
      src/views/other/first-item copy.vue
  2. 0 0
      src/views/other/first-itemcopy.vue

+ 0 - 901
src/views/other/first-item copy.vue

@@ -1,901 +0,0 @@
-<template>
-    <div class="hc-layout-box" id="first-item-node-layout-target">
-        <div class="hc-layout-left-box" :style="'width:' + leftWidth + 'px;'" v-show="!isFirstReportDrawer">
-            <div class="hc-project-box">
-                <div class="hc-project-icon-box">
-                    <HcIcon name="stack"/>
-                </div>
-                <div class="ml-2 project-name-box">
-                    <span class="text-xl text-cut project-alias">{{projectInfo['projectAlias']}}</span>
-                    <div class="text-xs text-cut project-name">{{projectInfo['name']}}</div>
-                </div>
-            </div>
-            <div class="hc-tree-box">
-                <el-scrollbar>
-                    <WbsTree :autoExpandKeys="TreeAutoExpandKeys" :projectId="projectId" :contractId="contractId" @nodeTap="nodeWbsElTreeClick"/>
-                </el-scrollbar>
-            </div>
-            <!--左右拖动-->
-            <div class="horizontal-drag-line" @mousedown="onmousedown"/>
-        </div>
-        <div class="hc-layout-content-box first-item" v-show="!isFirstReportDrawer">
-            <HcCard :scrollbar="false" actionSize="lg">
-                <template #header>
-                    <HcTooltip keys="other-first-item-report" v-if="tabTypeKey === 'mark'">
-                        <el-button type="primary" hc-btn :disabled="tableSelectionKeys.length <= 0" @click="firstReportClick">
-                            <HcIcon name="send-plane-2"/>
-                            <span>上报首件111111</span>
-                        </el-button>
-                    </HcTooltip>
-                    <HcTooltip keys="other-first-item-report-approval" v-if="tabTypeKey === 'query'">
-                        <el-button type="primary" hc-btn :disabled="tableSelectionKeys.length <= 0" @click="reportModalClick(1)">
-                            <HcIcon name="send-plane-2"/>
-                            <span>上报审批</span>
-                        </el-button>
-                    </HcTooltip>
-                    <HcTooltip keys="other-first-item-repeal" v-if="tabTypeKey === 'query'">
-                        <el-button hc-btn :disabled="tableSelectionKeys.length <= 0" @click="batchAbolishClick">
-                            <HcIcon name="delete-bin-3"/>
-                            <span>批量废除</span>
-                        </el-button>
-                    </HcTooltip>
-                    <HcTooltip keys="other-first-item-down-print">
-                        <el-button hc-btn :disabled="tableSelectionKeys.length <= 0" :loading="printLoading" @click="batchPrint">
-                            <HcIcon name="printer"/>
-                            <span>预览/打印</span>
-                        </el-button>
-                    </HcTooltip>
-                </template>
-                <template #extra>
-                    <HcNewSwitch :datas="tabTypeTab" :keys="tabTypeKey" @change="tabTypeChange"/>
-                </template>
-                <template #search>
-                    <div class="w-32">
-                        <el-select v-model="searchForm.status" placeholder="流程状态" clearable>
-                            <el-option v-for="item in processStatus" :label="item['dictValue']" :value="item['dictKey']"/>
-                        </el-select>
-                    </div>
-                    <div class="w-32 ml-3">
-                        <el-select v-model="searchForm.reportNumber" placeholder="上报批次" clearable>
-                            <el-option v-for="item in reportBatch" :label="item" :value="item"/>
-                        </el-select>
-                    </div>
-                    <div class="w-64 ml-3">
-                        <HcDatePicker :dates="betweenTime" clearable @change="betweenTimeUpdate"/>
-                    </div>
-                    <div class="w-64 ml-3">
-                        <el-input v-model="searchForm.queryValue" placeholder="请输入名称关键词检索" clearable @keyup="keyUpEvent"/>
-                    </div>
-                    <div class="ml-2">
-                        <el-button type="primary" @click="searchClick">
-                            <HcIcon name="search-2"/>
-                            <span>搜索</span>
-                        </el-button>
-                    </div>
-                </template>
-                <HcTable ref="tableListRef" :column="tableListColumn" :datas="tableListData" :loading="tableLoading" isCheck @selection-change="tableSelectionChange">
-                    <template #name="{row}">
-                        <span class="text-link" @click="tableRowName(row)">{{row?.name}}</span>
-                    </template>
-                    <template #waitingUserList="{row}">
-                        <template v-for="item in row['waitingUserList']">
-                            <el-tag :type="`${item.status === 2 ? 'success' : item.status === 3 ? 'warning' : item.status === 999 ? 'danger' : 'info'}`"
-                                    class="mx-1" effect="dark" v-if="item['waitingUserName']">{{item['waitingUserName']}}</el-tag>
-                        </template>
-                    </template>
-                    <template #taskStatusStr="{row}">
-                        <el-tag :type="`${row.status === 2 ? 'success' : row.status === 0 ? 'warning' : row.status === 1 ? 'danger' : 'info'}`"
-                                class="mx-1" effect="dark" v-if="row['taskStatusStr']">{{row['taskStatusStr']}}</el-tag>
-                    </template>
-                </HcTable>
-                <template #action>
-                    <div class="lr-dialog-footer">
-                        <div class="left">
-                            <span class="text-success">任务人中:</span>
-                            <el-tag type="success" class="mx-1" effect="dark">已签字</el-tag>
-                            <el-tag type="warning" class="mx-1" effect="dark">已废除</el-tag>
-                            <el-tag type="danger" class="mx-1" effect="dark">签字异常</el-tag>
-                        </div>
-                        <div class="right">
-                            <HcPages :pages="searchForm" @change="pageChange"/>
-                        </div>
-                    </div>
-                </template>
-            </HcCard>
-        </div>
-
-        <!--上报首件-->
-        <HcDrawer :show="isFirstReportDrawer" :isCard="false" uis="hc-first-item-node-layout" to-id="first-item-node-layout-target" @close="FirstReportDrawerClose">
-            <div class="node-content">
-                <div class="node-form">
-                    <el-scrollbar v-if="contractId && isTableForm" ref="ListItemScrollRef" >
-                        <!-- <div class="hc-excel-table-form-view" :id="`table-form-${contractId}`"></div> -->
-                         <ListItem ref="ListItemsRef"
-                            :datas="ListItemDatas" 
-                            :status="NodeStatus" 
-                            :classify="authBtnTabKey"
-                            @offsetTop="ListItemOffsetTop" 
-                            :projectInfo="projectInfo" 
-                            :treeItem="treeItem"
-                            :contractId="contractId" 
-                            @renew="renewtable"
-                            :drawType="isDrawType"
-                            :tableFileData="tableFileData"
-                            :finishFile="finishFile"
-                            />
-                    </el-scrollbar>
-                    <HcStatus :desc="statusDesc" v-else/>
-                </div>
-                <div class="node-file">
-                    <div class="title">上传总结报告1111</div>
-                    <div class="node-upload-box" v-if="contractId && isTableForm">
-                        <HcUpload :fileList="fileListData" :pkeyId="pkeyIds" @finish='uploadChange'/>
-                    </div>
-                    <div class="node-upload-box" v-else>
-                        <el-alert title="表单异常,暂时无法使用上传" type="warning" show-icon :closable="false"/>
-                    </div>
-                    <el-divider border-style="dashed" />
-                    <div class="title">文件附件</div>
-                    <div class="hc-table-node-file-box">
-                        <HcTable :column="tableFileColumn" :datas="tableFileData" :isIndex="false">
-                            <template #action="{row,index}">
-                                <el-button type="danger" plain size="small" @click="tableDelButton(index)">删除</el-button>
-                            </template>
-                        </HcTable>
-                    </div>
-                </div>
-            </div>
-            <div class="node-action">
-                <el-button type="primary" hc-btn :disabled="!contractId || !isTableForm||NodeStatus === '3'" :loading="tableFormSaveLoading" @click="saveBussData">
-                    <HcIcon name="save"/>
-                    <span>保存</span>
-                </el-button>
-                <el-button hc-btn :disabled="!contractId || !isTableForm || !tableFormId||NodeStatus === '1'" @click="bussPdfInfo">
-                    <HcIcon name="eye"/>
-                    <span>预览</span>
-                </el-button>
-                <el-button hc-btn :disabled="!contractId || !isTableForm || !tableFormId||NodeStatus === '3' || NodeStatus === '1'" :loading="reportLoading" @click="reportModalClick(2)">
-                    <HcIcon name="send-plane-2"/>
-                    <span>上报</span>
-                </el-button>
-                <el-button hc-btn @click="FirstReportDrawerClose">
-                    <HcIcon name="close"/>
-                    <span>返回</span>
-                </el-button>
-            </div>
-        </HcDrawer>
-
-        <!--上报审批-->
-        <HcReportModal
-            title="上报审批"
-            url="informationWriteQuery/batchTask"
-            :show="showReportModal"
-            :projectId="projectId"
-            :contractId="contractId"
-            type="first"
-            :typeData="reportTypeData"
-            :taskName="reportTaskName"
-            :ids="reportIds"
-            :isDatas="isReportModalDatas"
-            :datas="reportDatas"
-            @hide="showReportModal = false"
-            @finish="showReportFinish"
-            @tagClose="reportTaskTagClose"
-        />
-    </div>
-</template>
-
-<script setup>
-import {useAppStore} from "~src/store";
-import {nextTick, onMounted, ref, watch} from 'vue'
-import {useRouter, useRoute} from 'vue-router'
-import WbsTree from "./components/WbsTree.vue"
-import HcUpload from "./components/HcUpload.vue"
-import HTableForm from "~src/plugins/HTableForm"
-import {getReportNumber,eVisaTaskCheckApi} from "~api/other";
-import firstApi from '~api/other/first-item';
-import tasksApi from '~api/tasks/data';
-import {getStoreData, setStoreData} from '~src/utils/storage'
-import {getArrValue, isString, getObjValue, getObjNullValue,deepClone} from "vue-utils-plus"
-import queryApi from "~api/data-fill/query";
-import wbsApi from "~api/data-fill/wbs";
-import ListItem from "./components/ListItem.vue"
-//变量
-const router = useRouter()
-const useRoutes = useRoute()
-const useAppState = useAppStore()
-const projectId = ref(useAppState.getProjectId);
-const contractId = ref(useAppState.getContractId);
-const projectInfo = ref(useAppState.getProjectInfo);
-const contractInfo = ref(useAppState.getContractInfo);
-const isCollapse = ref(useAppState.getCollapse)
-
-//路由参数
-const routerQuery = useRoutes?.query;
-const typeName = routerQuery?.type || 'mark'
-
-//监听
-watch(() => [
-    useAppState.getCollapse
-], ([Collapse]) => {
-    isCollapse.value = Collapse
-})
-
-
-//自动展开缓存
-const TreeAutoExpandKeys = ref(getStoreData('firstItemTreeKeys') || [])
-
-//类型tab数据和相关处理
-const tabTypeKey = ref(typeName)
-const tabTypeTab = ref([
-    {key:'mark',  name: '已标记为首件'},
-    {key:'query', name: '首件查询'}
-]);
-
-const tabTypeChange = (item) => {
-    tableFormId.value = ''
-    tabTypeKey.value = item?.key
-    if (searchForm.value.wbsId) {
-        searchForm.value.current = 1;
-        getTableData()
-    }
-    //路由跳转
-    router.push({
-        path: useRoutes.path,
-        query: {type: item?.key}
-    })
-}
-
-//渲染完成
-onMounted(() => {
-    firstTaskStatus()
-})
-const renewtable=()=>{
-     getTableData()
-     queryNodeStatus()
-}
-//项目树被点击
-const treeItem = ref({})
-const nodeWbsElTreeClick = ({data, keys}) => {
-    treeItem.value = data
-    searchForm.value.contractIdRelation = data['contractIdRelation']
-    searchForm.value.wbsId = data['primaryKeyId']
-    //缓存自动展开
-    TreeAutoExpandKeys.value = keys
-    setStoreData('firstItemTreeKeys', keys)
-    //获取相关数据
-    getReportNumberByContractId(data['contractIdRelation'])
-    searchClick()
-}
-
-//获取流程状态
-const processStatus = ref([])
-const firstTaskStatus = async () => {
-    const { data } = await tasksApi.queryTaskTypeStatus({
-        typeOrStatus: 'first_task_status'
-    })
-    //处理数据
-    processStatus.value = getArrValue(data)
-}
-//查询状态
-const NodeStatus = ref('1')
- const { contractType } = contractInfo.value;
-const authBtnTabKey = ref(contractType===2?'2':'1')
-const queryNodeStatus = async () => {
-    const info = treeItem.value;
-    console.log(info,'info')
-    const {error, code, data} = await wbsApi.queryNodeStatus({
-        // primaryKeyId: info['contractIdRelation'] ? info['id'] : info['primaryKeyId'],
-        // classify: 1
-       primaryKeyId: authBtnTabKey.value==1 ? info['id'] : info['primaryKeyId'],
-        classify: authBtnTabKey.value
-        
-    })
-    //1 未填报,2待上报,3已上报
-    if (!error && code === 200) {
-        NodeStatus.value = data ?? '1'
-    } else {
-        NodeStatus.value = '1'
-    }
-}
-//获取上报批次
-const reportBatch = ref([])
-const getReportNumberByContractId = async (cid) => {
-    const { data } = await getReportNumber({
-        contractId: contractId.value,
-        projectId:projectId.value,
-        contractIdRelation: cid ?? '',
-        firstTitle: tabTypeKey.value === 'query' ? 1: null
-    })
-    //处理数据
-    reportBatch.value = getArrValue(data)
-}
-
-//搜索表单
-const searchForm = ref({
-    wbsId: '', status: null, reportNumber: null, queryValue: '', betweenTime: '',
-    contractIdRelation: '', current: 1, size: 20, total: 0
-})
-
-//日期时间被选择
-const betweenTime = ref(null)
-const betweenTimeUpdate = ({query,arr}) => {
-    betweenTime.value = arr
-    searchForm.value.betweenTime = query
-}
-
-//回车搜索
-const keyUpEvent = (e) => {
-    if (e.key === "Enter") {
-        searchClick()
-    }
-}
-
-//搜索
-const searchClick = () => {
-    if (searchForm.value.wbsId) {
-        searchForm.value.current = 1;
-        getTableData()
-    } else {
-        window?.$message?.warning('请先在左边选择一个树节点')
-    }
-}
-
-//分页被点击
-const pageChange = ({current, size}) => {
-    searchForm.value.current = current
-    searchForm.value.size = size
-    getTableData()
-}
-
-//表格表头
-const tableListColumn = ref([
-    {key:'name', name: '文件名称'},
-    {key:'waitingUserList', name: '任务人'},
-    {key:'startTime', name: '开始时间', width: 180},
-    {key:'taskStatusStr', name: '流程状态', width: 140},
-    {key:'reportNumber', name: '上报批次', width: 120},
-])
-
-//获取表格数据
-const tableLoading = ref(false)
-const tableListData = ref([])
-//获取数据列表
-
-const ListItemsRef = ref(null)
-//是否是抽屉
-const isDrawType = ref(false)
-//设置滚动条位置
-const ListItemScrollRef = ref(null)
-const ListItemOffsetTop = (offsetTop) => {
-    if (offsetTop > 0) {
-        setTimeout(() => {
-            ListItemScrollRef.value?.setScrollTop(offsetTop)
-        }, 350)
-    } else {
-        ListItemScrollRef.value?.setScrollTop(offsetTop)
-    }
-}
-const getTableData = async () => {
-    const searchInfo = searchForm.value
-    const tabKey = tabTypeKey.value
-    if (!!searchInfo.wbsId) {
-        //初始处理
-        tableLoading.value = true
-        tableListRef.value?.clearSelection()
-        tableSelectionKeys.value = []
-        tableListData.value = []
-        //获取相关数据
-        let addFormData = {
-            projectId: projectId.value,
-            contractId: contractId.value,
-            isFirst: 1,
-        }
-        const treeInfo = treeItem.value
-        //已标记的首件
-        if (tabKey === 'mark' && addFormData['firstTitle']) {
-            delete addFormData.firstTitle
-        }
-        //查询数据
-        if (tabKey === 'query') {
-            addFormData['firstTitle'] = 1
-        }
-        addFormData['wbsId'] = treeInfo['contractIdRelation'] ? treeInfo['id'] : treeInfo['primaryKeyId']
-        //处理数据
-        const { error, code, data } = await firstApi.getQueryPageData({
-            ...addFormData,
-            ...searchInfo,
-        })
-        tableLoading.value = false
-        if (!error && code === 200) {
-            tableListData.value = getArrValue(data['records'])
-
-            searchForm.value.total = data.total || 0
-        } else {
-            tableListData.value = []
-            searchForm.value.total = 0
-        }
-    } else {
-        window?.$message?.warning('请先选择一个树节点')
-    }
-}
-
-//多选
-const tableListRef = ref(null)
-const tableSelectionKeys = ref([]);
-const tableSelectionChange = (rows) => {
-    tableSelectionKeys.value = rows.filter((item) => {
-        return (item??'') !== '';
-    })
-}
-
-//文件名称被点击
-const tableRowName = (row) => {
-    //如果 evisaPdfUrl 不为空,使用evisaPdfUrl,反之使用pdfUrl
-    if (tabTypeKey.value === 'query') {
-        //首件查询时,直接调用接口
-        getBussPdfInfo(row.id + '')
-    } else if (row['evisaPdfUrl']) {
-        window.open(row['evisaPdfUrl'],'_blank')
-    } else if (row['pdfUrl']) {
-        window.open(row['pdfUrl'],'_blank')
-    } else {
-        window.$message?.warning('文件不存在')
-    }
-}
-const ListItemDatas = ref([]);
-//上报首件
-const isFirstReportDrawer = ref(false)
-const isCanreport=ref(false)
-const firstReportClick = () => {
-    const rows = deepClone(tableSelectionKeys.value)
-    console.log(rows,'rows')
-    nextTick(()=>{
-      ListItemDatas.value=rows
-
-    })
-      console.log( ListItemDatas.value,' ListItemDatas.value')
-    //判断是否满足条件
-    const result = rows.every(({status})=> {
-        return status === 2
-        // return status === 0 || status === 3
-    })
-    isCanreport.value=result
-    //判断状态
-    // if (result) {
-    //     isFirstReportDrawer.value = true
-    //     queryNodeStatus()
-    //     tableFileData.value = rows
-    //     getFirstExcelHtml()
-    // } else {
-    //     tableFileData.value = []
-    //     window.$message?.warning('已上报的文件不能进行再次上报,若要重新上报,要先撤回之前的上报,再重新上报')
-    // }
-        isFirstReportDrawer.value = true
-        // getTableData()
-        queryNodeStatus()
-        tableFileData.value = rows
-        getFirstExcelHtml()
-}
-const FirstReportDrawerClose = () => {
-    isFirstReportDrawer.value = false
-}
-
-//获取表单
-const statusDesc = ref('')
-const isTableForm = ref(false)
-const pkeyIds = ref('')
-const getFirstExcelHtml = async () => {
-    const cid = contractId.value;
-    const { error, code, data } = await firstApi.getFirstExcelHtml({
-        contractId: contractId.value || ''
-    }, false)
-    //处理数据
-    const temp = isString(data?.data) ? data?.data || '' : ''
-    if (!error && code === 200 && temp) {
-        let pkeyId = data?.id || ''
-        pkeyIds.value = pkeyId
-        await getFirstBussDataInfo(pkeyId)
-        setHTableForm(temp, cid)
-    } else {
-        isTableForm.value = false
-        statusDesc.value = '暂无表单'
-        window?.$message?.warning('暂无表单')
-    }
-}
-
-//渲染表单
-const tableFormApp = ref(null)
-const setHTableForm = (resData, cid) => {
-    //先卸载
-    if (tableFormApp.value) {
-        tableFormApp.value?.unmount()
-    }
-    if (resData) {
-        isTableForm.value = true
-        nextTick(() => {
-            tableFormApp.value = HTableForm.createForm({
-                template: resData,
-                tableForm: tableFormData.value,
-                appId: `#table-form-${cid}`
-            })
-        })
-    } else {
-        isTableForm.value = false
-        statusDesc.value = '暂无表单'
-        window?.$message?.warning('暂无表单')
-    }
-}
-
-//获取回显数据
-const tableFormData = ref({})
-const getFirstBussDataInfo = async (pkeyId) => {
-    if (pkeyId) {
-        const { data } = await firstApi.getFirstBussDataInfo({
-            contractId: contractId.value || '',
-            firstId: pkeyId + ''
-        }, false)
-        const info = getObjValue(data)
-        if (getObjNullValue(info)) {
-            HTableForm.setPickerKey(info)
-            tableFormData.value = info
-        } else {
-            tableFormData.value = {}
-        }
-    } else {
-        tableFormData.value = {}
-    }
-}
-
-//上传变量
-const fileListData = ref([]);
-const finishFile = ref({
-    sourceUrl: '', pdfUrl: '', firstFileName: ''
-})
-//上传文件
-const uploadChange = async ({type, res}) => {
-    if (type === 'success') {
-        const {code, data, msg} = res
-        if (code === 200) {
-            finishFile.value = {
-                sourceUrl: data?.sourceUrl,
-                pdfUrl: data?.pdfUrl,
-                firstFileName: data?.fileName,
-            }
-            window.$message?.success(msg);
-        } else {
-            window.$message?.error(msg || '上传失败');
-        }
-    }
-}
-
-//文件附件列表
-const tableFileColumn = ref([
-    {key:'name', name: '文件名称'},
-    {key:'action', name: '操作', width: 80, align: 'center'}
-]);
-const tableFileData = ref([]);
-const tableDelButton = (index) => {
-    const arr = tableFileData.value
-    if (arr.length > 1) {
-        window?.$messageBox?.alert('确定删除该文件吗?', '删除提醒', {
-            type: 'warning',
-            showCancelButton: true,
-            confirmButtonText: '确定删除',
-            cancelButtonText: '取消',
-            callback: (action) => {
-                if (action === 'confirm') {
-                    tableFileData.value.splice(index, 1)
-                }
-            }
-        })
-    } else {
-        window?.$message?.warning('至少保留一个文件')
-    }
-}
-
-//填报数据保存
-const pdfId=ref('')
-const saveBussData = async () => {
-    console.log('保存');
-    const { id } = treeItem.value
-    const res = await saveExcelBussData(id + '')
-    //刷新页面
-    //  window?.location?.reload()  //刷新页面
-    if (res) {
-        pdfId.value=res
-         queryNodeStatus()
-        await getBussPdfInfo(res)
-         
-          
-       
-    }
-}
-
-//保存请求
-const tableFormSaveLoading = ref(false)
-const tableFormId = ref('')
-const saveExcelBussData = async (pkeyId) => {
-    tableFormId.value = ''
-    const { primaryKeyId } = treeItem.value
-    tableFormSaveLoading.value = true
-    const linkIds = rowsToArr(tableFileData.value);
-    const { error, code, data } = await firstApi.saveBussData({
-        ...tableFormData.value,
-        projectId: projectId.value,
-        contractId: contractId.value,
-        firstNodeId: primaryKeyId,
-        pkeyId: pkeyId,
-        classify: '1',
-        isFirst: 1,
-        linkProcessList: linkIds,
-        ...finishFile.value
-    }, false)
-    //判断状态
-    tableFormSaveLoading.value = false
-    if (!error && code === 200 && isString(data)) {
-        window.$message?.success('保存成功')
-        tableFormId.value = data
-        return data
-    } else {
-        window.$message?.error('保存失败')
-        tableFormId.value = ''
-        return ''
-    }
-}
-
-//pdf预览
-const bussPdfInfo = () => {
-    const { id } = treeItem.value
-    // getBussPdfInfo(id + '')
-     getBussPdfInfo(pdfId.value)
-      
-}
-
-//预览PDF请求
-const getBussPdfInfo = async (pkeyId) => {
-    const { error, code, data } = await firstApi.getFirstBussPdfInfo({
-        firstId: pkeyId
-    })
-    //判断状态
-    const res = isString(data)? data ?? '': ''
-    if (!error && code === 200 && res) {
-        window.open(res,'_blank')
-    }
-}
-
-//上报审批
-const reportIds = ref('')
-const showReportModal = ref(false)
-const reportTaskName = ref('')
-const reportAddition = ref({})
-const reportLoading = ref(false)
-const reportTypeData = ref('')
-const reportDatas = ref([])
-const isReportModalDatas = ref(false)
-const iscanReport=ref(false)
-//上报方法封装
-const toreportModalClick = async (type) => {
-    if(type){
-            const { primaryKeyId, contractIdRelation } = treeItem.value
-            let rows = [];
-            //处理获取流程的条件
-            if (tabTypeKey.value === 'mark') {
-                reportTypeData.value = tableFormId.value
-                isReportModalDatas.value = false
-                rows = tableFileData.value
-            } else {
-                isReportModalDatas.value = true
-                rows = tableSelectionKeys.value
-            }
-            if (rows.length > 0) {
-                reportLoading.value = true
-                const taskCheck = await eVisaTaskCheckApi({
-                    projectId: projectId.value,
-                    contractId: contractId.value
-                })
-                if (taskCheck) {
-                    if (tabTypeKey.value === 'mark') {
-                        reportIds.value = tableFormId.value
-                        const { data } = await firstApi.queryFirstDocumentTitle({
-                            projectId: projectId.value,
-                            contractId: contractId.value,
-                            queryId: tableFormId.value
-                        })
-                        reportTaskName.value = isString(data) ? data ?? '' : ''
-                    } else {
-                        reportIds.value = rowsToId(rows)
-                        //设置任务数据
-                        let reportDataArr = []
-                        rows.forEach(item => {
-                            reportDataArr.push({
-                                id: item?.id,
-                                name: item?.name
-                            })
-                        })
-                        reportDatas.value = reportDataArr
-                        //其他数据
-                        reportTypeData.value = rows[0]['id']
-                        reportTaskName.value = rows.length > 1?`${rows[0].name}等${rows.length}个文件`:rows[0].name
-                    }
-                    reportLoading.value = false
-                    //附加数据
-                    reportAddition.value = {
-                        classify: 1,
-                        isFirst: 1,
-                        primaryKeyId: primaryKeyId,
-                        contractIdRelation: contractIdRelation ?? contractId.value,
-                    }
-                    showReportModal.value = true
-                } else {
-                    reportLoading.value = false
-                }
-            } else {
-                window.$message?.warning('暂无相关数据')
-            }
-        }else{
-             window.$message?.warning('当前工序资料还未审批,待审批完成才能进行首件模板上报')
-            
-        }
-}
-const reportModalClick = async (type) => {
-    if(type===2){
-         console.log('上报')
-        iscanReport.value=isCanreport.value;
-        toreportModalClick(iscanReport.value)
-
-    }
-    
-    else{
-         const rows = deepClone(tableSelectionKeys.value)
-         let result=false
-            console.log('上报审批',rows)
-        //判断自身是否满足条件
-         const result1 = rows.every(({taskStatusStr})=> {
-            return taskStatusStr === '未上报'||taskStatusStr === '已废除'
-        })
-        if(result1){
-             //判断工序节点是否满足条件
-             result = rows.every(({isApprove})=> {
-                return isApprove === true
-            })
-             iscanReport.value=result
-              toreportModalClick(iscanReport.value)
-        }else{
-              window.$message?.warning('已上报的数据不能重复上报')
-               iscanReport.value=false
-        }
-       
-        
-         
-    }
-   
-}
-
-//上报的审批内容移除
-const reportTaskTagClose = (index) => {
-    const row = tableSelectionKeys.value[index];
-    tableListRef.value?.toggleRowSelection(row,false)
-}
-const getTableDataAll = () => {
-    getTableData()
-    firstTaskStatus()
-}
-//上报完成
-const showReportFinish = () => {
-    showReportModal.value = false
-    getTableDataAll()
-}
-
-//打印
-const printLoading = ref(false)
-const batchPrint = async () => {
-    const rows = tableSelectionKeys.value;
-    const ids = rowsToId(rows)
-    //批量下载
-    printLoading.value = true
-    const { error, code, data } = await firstApi.batchPrint({
-        ids: ids
-    })
-    //处理数据
-    printLoading.value = false
-    //判断状态
-    const res = isString(data)? data ?? '': ''
-    if (!error && code === 200 && res) {
-        window.open(res,'_blank')
-    }
-}
-
-//废除
-const batchAbolishClick = () => {
-    const rows = tableSelectionKeys.value;
-    //判断是否满足条件
-    const result = rows.every(({status})=> {
-        return status !== 0 && status !== 3
-    })
-    //判断状态
-    if (result) {
-        //拼接ID
-        const ids = rowsToId(rows)
-        window?.$messageBox?.alert('是否废除勾选的已上报文件?', '废除文件', {
-            showCancelButton: true,
-            confirmButtonText: '确定废除',
-            cancelButtonText: '取消',
-            callback: (action) => {
-                if (action === 'confirm') {
-                    batchAbolishSave(ids)
-                }
-            }
-        })
-    } else {
-        window.$message?.warning('未上报的文件不能废除')
-    }
-}
-//废除勾选的已上报文件
-const batchAbolishSave = async (ids) => {
-    const { error, code } = await queryApi.batchAbolish({ids: ids})
-    //处理数据
-    if (!error && code === 200) {
-        window.$message?.success('批量废除成功')
-        tableSelectionKeys.value = []
-        getTableData()
-    }
-}
-
-//拼接ID
-const rowsToId = (rows) => {
-    return rows.map((obj) => {
-        return obj.id;
-    }).join(",")
-}
-
-//处理数据
-const rowsToArr = (rows) => {
-    let newArr = [];
-    for (let i = 0; i < rows.length; i++) {
-        newArr.push({
-            id: rows[i]?.id,
-            name: rows[i]?.name
-        })
-    }
-    return newArr
-}
-
-//左右拖动,改变树形结构宽度
-const leftWidth = ref(382)
-const onmousedown = () => {
-    const leftNum = isCollapse.value ? 142 : 272
-    document.onmousemove = (ve) => {
-        const diffVal = ve.clientX - leftNum;
-        if(diffVal >= 310 && diffVal <= 900) {
-            leftWidth.value = diffVal;
-        }
-    }
-    document.onmouseup = () => {
-        document.onmousemove = null;
-        document.onmouseup = null;
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-@import "../../styles/other/first-item.scss";
-</style>
-
-<style lang="scss">
-.hc-first-item-node-layout.el-overlay {
-    position: absolute;
-    background-color: transparent;
-    margin: -24px;
-    height: revert;
-    .hc-drawer-box.el-drawer {
-        --el-drawer-bg-color: transparent;
-        .el-drawer__body {
-            padding: 24px;
-            display: flex;
-            flex-direction: column;
-            overflow: hidden;
-        }
-    }
-}
-</style>

+ 0 - 0
src/views/other/first-item.vue → src/views/other/first-itemcopy.vue