|
@@ -6,16 +6,23 @@
|
|
<div class="hc-excel-table-form-view" :id="`table-form-${excelIdVal}`"></div>
|
|
<div class="hc-excel-table-form-view" :id="`table-form-${excelIdVal}`"></div>
|
|
</el-scrollbar>
|
|
</el-scrollbar>
|
|
<HcStatus :desc="statusDesc" v-else/>
|
|
<HcStatus :desc="statusDesc" v-else/>
|
|
- <div class="hc-fixed-page" v-if="formLogDataList.length > 1">
|
|
|
|
- <el-scrollbar>
|
|
|
|
|
|
+ </div>
|
|
|
|
+ <div class="hc-fixed-page" v-if="formLogDataList.length > 1">
|
|
|
|
+ <el-scrollbar>
|
|
|
|
+ <div class="hc-fixed-page-list-box">
|
|
<template v-for="(item,index) in formLogDataList">
|
|
<template v-for="(item,index) in formLogDataList">
|
|
- <el-button :type="index === formLogIndex ? 'primary' : ''" hc-btn @click="getBussDataInfo(index)">
|
|
|
|
- <HcIcon name="sticky-note"/>
|
|
|
|
- <span>第{{index + 1}}页</span>
|
|
|
|
- </el-button>
|
|
|
|
|
|
+ <div class="fixed-page-item" :class="index === formLogIndex ? 'primary' : ''" @click="getBussDataInfo(index)">
|
|
|
|
+ <div class="name-box">
|
|
|
|
+ <HcIcon name="sticky-note"/>
|
|
|
|
+ <span class="page">第{{index + 1}}页</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="close-box" @click.stop="closeBussDataInfo(index)">
|
|
|
|
+ <HcIcon name="close"/>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</template>
|
|
</template>
|
|
- </el-scrollbar>
|
|
|
|
- </div>
|
|
|
|
|
|
+ </div>
|
|
|
|
+ </el-scrollbar>
|
|
</div>
|
|
</div>
|
|
<div class="hc-right-pian-box hc-flex-column">
|
|
<div class="hc-right-pian-box hc-flex-column">
|
|
<DateCalendar :dateData="dateData" @choice-date="dateCalendarChoice"/>
|
|
<DateCalendar :dateData="dateData" @choice-date="dateCalendarChoice"/>
|
|
@@ -91,8 +98,7 @@
|
|
|
|
|
|
<!--复制任意时间-->
|
|
<!--复制任意时间-->
|
|
<HcDialog :show="copyTimeModal" title="复制任意时间" widths="360px" bg-color="#f1f5f8" saveText="复制" @close="copyTimeModal = false" :loading="copyTimeLoading" @save="copyTimeSaveClick">
|
|
<HcDialog :show="copyTimeModal" title="复制任意时间" widths="360px" bg-color="#f1f5f8" saveText="复制" @close="copyTimeModal = false" :loading="copyTimeLoading" @save="copyTimeSaveClick">
|
|
- <DateCalendar :dateData="dateData" @choice-date="copyTimeChoice"/>
|
|
|
|
- <el-alert title="请选择一个日期复制" type="warning" show-icon/>
|
|
|
|
|
|
+ <el-alert title="等接口中..." type="warning" show-icon/>
|
|
</HcDialog>
|
|
</HcDialog>
|
|
|
|
|
|
<!--批量上报审批-->
|
|
<!--批量上报审批-->
|
|
@@ -122,6 +128,10 @@ const props = defineProps({
|
|
items: {
|
|
items: {
|
|
type: Object,
|
|
type: Object,
|
|
default: () => ({})
|
|
default: () => ({})
|
|
|
|
+ },
|
|
|
|
+ userName: {
|
|
|
|
+ type: [String,Number],
|
|
|
|
+ default: ''
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
|
|
@@ -129,6 +139,7 @@ const props = defineProps({
|
|
const projectId = ref(props.projectId);
|
|
const projectId = ref(props.projectId);
|
|
const contractId = ref(props.contractId);
|
|
const contractId = ref(props.contractId);
|
|
const menuItem = ref(props.items);
|
|
const menuItem = ref(props.items);
|
|
|
|
+const userName = ref(props.userName);
|
|
const excelIdVal = ref('');
|
|
const excelIdVal = ref('');
|
|
const statusDesc = ref('');
|
|
const statusDesc = ref('');
|
|
|
|
|
|
@@ -137,10 +148,12 @@ watch(() => [
|
|
props.projectId,
|
|
props.projectId,
|
|
props.contractId,
|
|
props.contractId,
|
|
props.items,
|
|
props.items,
|
|
-], ([pid, cid, item]) => {
|
|
|
|
|
|
+ props.userName,
|
|
|
|
+], ([pid, cid, item, name]) => {
|
|
projectId.value = pid
|
|
projectId.value = pid
|
|
contractId.value = cid
|
|
contractId.value = cid
|
|
menuItem.value = item
|
|
menuItem.value = item
|
|
|
|
+ userName.value = name
|
|
getQueryData()
|
|
getQueryData()
|
|
})
|
|
})
|
|
|
|
|
|
@@ -153,13 +166,24 @@ nextTick(() => {
|
|
const getQueryData = () => {
|
|
const getQueryData = () => {
|
|
const {excelId} = menuItem.value
|
|
const {excelId} = menuItem.value
|
|
excelIdVal.value = excelId > 0 ? excelId + '' : ''
|
|
excelIdVal.value = excelId > 0 ? excelId + '' : ''
|
|
|
|
+ const date = recordDate.value, time = recordTime.value
|
|
|
|
+ if (date && time) {
|
|
|
|
+ getExcelBusinessData(date,time)
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
//日期日历回调
|
|
//日期日历回调
|
|
const recordTime = ref('')
|
|
const recordTime = ref('')
|
|
|
|
+const recordDate = ref('')
|
|
const dateCalendarChoice = ({date, choices}) => {
|
|
const dateCalendarChoice = ({date, choices}) => {
|
|
- const {primaryKeyId} = menuItem.value
|
|
|
|
recordTime.value = choices
|
|
recordTime.value = choices
|
|
|
|
+ recordDate.value = date
|
|
|
|
+ getExcelBusinessData(date,choices)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+//获取数据
|
|
|
|
+const getExcelBusinessData = (date,choices) => {
|
|
|
|
+ const {primaryKeyId} = menuItem.value
|
|
getExcelHtml(excelIdVal.value)
|
|
getExcelHtml(excelIdVal.value)
|
|
getTheLogBusinessData(excelIdVal.value, choices)
|
|
getTheLogBusinessData(excelIdVal.value, choices)
|
|
getSubmitLogDateList(date,primaryKeyId)
|
|
getSubmitLogDateList(date,primaryKeyId)
|
|
@@ -515,7 +539,8 @@ const copyTimeChoice = ({choices}) => {
|
|
//确认复制
|
|
//确认复制
|
|
const copyTimeLoading = ref(false)
|
|
const copyTimeLoading = ref(false)
|
|
const copyTimeSaveClick = async () => {
|
|
const copyTimeSaveClick = async () => {
|
|
- copyTimeLoading.value = true
|
|
|
|
|
|
+ copyTimeModal.value = false
|
|
|
|
+ /*copyTimeLoading.value = true
|
|
const {primaryKeyId} = menuItem.value
|
|
const {primaryKeyId} = menuItem.value
|
|
const { error, code } = await queryApi.copyTheLogBusinessData({
|
|
const { error, code } = await queryApi.copyTheLogBusinessData({
|
|
contractId: contractId.value || '',
|
|
contractId: contractId.value || '',
|
|
@@ -529,7 +554,7 @@ const copyTimeSaveClick = async () => {
|
|
window?.location?.reload() //刷新页面
|
|
window?.location?.reload() //刷新页面
|
|
} else {
|
|
} else {
|
|
window?.$message?.warning('复制失败')
|
|
window?.$message?.warning('复制失败')
|
|
- }
|
|
|
|
|
|
+ }*/
|
|
}
|
|
}
|
|
|
|
|
|
//设置表单默认数据
|
|
//设置表单默认数据
|
|
@@ -547,13 +572,19 @@ const setFormDefaultData = (formInfo = {}) => {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+//删除记录
|
|
|
|
+const closeBussDataInfo = (index) => {
|
|
|
|
+ formLogDataList.value.splice(index, 1)
|
|
|
|
+ formLogIndex.value = index <= 0 ? 0 : index - 1
|
|
|
|
+}
|
|
|
|
+
|
|
//批量上报
|
|
//批量上报
|
|
const reportTaskName = ref('')
|
|
const reportTaskName = ref('')
|
|
const reportAddition = ref({})
|
|
const reportAddition = ref({})
|
|
const showReportModal = ref(false)
|
|
const showReportModal = ref(false)
|
|
const reportModalClick = () => {
|
|
const reportModalClick = () => {
|
|
const {primaryKeyId,title} = menuItem.value
|
|
const {primaryKeyId,title} = menuItem.value
|
|
- reportTaskName.value = `${recordTime.value} ${title}`
|
|
|
|
|
|
+ reportTaskName.value = `${recordTime.value} ${title} ${userName.value}`
|
|
reportAddition.value = {
|
|
reportAddition.value = {
|
|
nodePrimaryKeyId: primaryKeyId,
|
|
nodePrimaryKeyId: primaryKeyId,
|
|
recordTime: recordTime.value,
|
|
recordTime: recordTime.value,
|
|
@@ -605,6 +636,12 @@ const theLogOneAbolish = async () => {
|
|
position: relative;
|
|
position: relative;
|
|
margin-left: 24px;
|
|
margin-left: 24px;
|
|
height: 100%;
|
|
height: 100%;
|
|
|
|
+ .hc-table-forem-box, .hc-fixed-page, .hc-right-pian-box, .hc-footer-box {
|
|
|
|
+ padding: 24px;
|
|
|
|
+ background: #f1f5f8;
|
|
|
|
+ border-radius: 10px;
|
|
|
|
+ box-shadow: -2px 0px 10px 0px rgba(32,37,50,0.03), 0px 10px 21px 20px rgba(32,37,50,0.03);
|
|
|
|
+ }
|
|
.hc-content-box {
|
|
.hc-content-box {
|
|
flex: 1;
|
|
flex: 1;
|
|
display: flex;
|
|
display: flex;
|
|
@@ -613,28 +650,64 @@ const theLogOneAbolish = async () => {
|
|
height: calc(100% - 105px);
|
|
height: calc(100% - 105px);
|
|
.hc-table-forem-box {
|
|
.hc-table-forem-box {
|
|
flex: 1;
|
|
flex: 1;
|
|
- padding: 24px;
|
|
|
|
margin-right: 24px;
|
|
margin-right: 24px;
|
|
position: relative;
|
|
position: relative;
|
|
- background: #f1f5f8;
|
|
|
|
- border-radius: 10px;
|
|
|
|
- box-shadow: -2px 0px 10px 0px rgba(32,37,50,0.03), 0px 10px 21px 20px rgba(32,37,50,0.03);
|
|
|
|
- .hc-fixed-page {
|
|
|
|
- position: absolute;
|
|
|
|
- top: 4px;
|
|
|
|
- right: 4px;
|
|
|
|
- bottom: 4px;
|
|
|
|
- z-index: 99;
|
|
|
|
- overflow: hidden;
|
|
|
|
|
|
+ }
|
|
|
|
+ .hc-fixed-page {
|
|
|
|
+ position: relative;
|
|
|
|
+ margin-right: 24px;
|
|
|
|
+ padding: 0;
|
|
|
|
+ .hc-fixed-page-list-box {
|
|
|
|
+ position: relative;
|
|
|
|
+ padding: 24px;
|
|
|
|
+ user-select: none;
|
|
|
|
+ .fixed-page-item {
|
|
|
|
+ position: relative;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ border-radius: 3px;
|
|
|
|
+ padding: 6px 10px;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ background: #f1f5f8;
|
|
|
|
+ border: 1px solid #f1f5f8;
|
|
|
|
+ color: var(--el-color-primary-light-3);
|
|
|
|
+ box-shadow: 4px 4px 8px 0 rgba(54,92,167,0.15), -4px -4px 8px 0 #ffffff;
|
|
|
|
+ transition: .1s;
|
|
|
|
+ .name-box {
|
|
|
|
+ position: relative;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ margin-right: 24px;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ .page {
|
|
|
|
+ margin-left: 5px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .close-box {
|
|
|
|
+ position: relative;
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ }
|
|
|
|
+ &.primary {
|
|
|
|
+ background: var(--el-color-primary);
|
|
|
|
+ color: var(--el-color-white);
|
|
|
|
+ box-shadow: var(--hc-shadow);
|
|
|
|
+ border: 1px solid #f1f5f8;
|
|
|
|
+ }
|
|
|
|
+ &+.fixed-page-item{
|
|
|
|
+ margin-top: 20px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.hc-right-pian-box {
|
|
.hc-right-pian-box {
|
|
width: 360px;
|
|
width: 360px;
|
|
position: relative;
|
|
position: relative;
|
|
padding: 24px 20px;
|
|
padding: 24px 20px;
|
|
- background: #f1f5f8;
|
|
|
|
- border-radius: 10px;
|
|
|
|
- box-shadow: -2px 0px 10px 0px rgba(32,37,50,0.03), 0px 10px 21px 20px rgba(32,37,50,0.03);
|
|
|
|
.hc-process-box {
|
|
.hc-process-box {
|
|
position: relative;
|
|
position: relative;
|
|
flex: 1;
|
|
flex: 1;
|
|
@@ -672,12 +745,9 @@ const theLogOneAbolish = async () => {
|
|
.hc-footer-box {
|
|
.hc-footer-box {
|
|
position: relative;
|
|
position: relative;
|
|
height: 80px;
|
|
height: 80px;
|
|
- background: #f1f5f8;
|
|
|
|
- border-radius: 10px;
|
|
|
|
display: flex;
|
|
display: flex;
|
|
align-items: center;
|
|
align-items: center;
|
|
padding: 20px 24px;
|
|
padding: 20px 24px;
|
|
- box-shadow: -2px 0px 10px 0 rgba(32,37,50,0.03), 0 -10px 21px 3px rgba(32,37,50,0.03);
|
|
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
}
|
|
}
|
|
}
|
|
}
|