Browse Source

接口联调

feature
mk 2 years ago
parent
commit
406af35f75
  1. 1
      src/assets/scss/pages/smartImport.scss
  2. 135
      src/views/components/resiSearch.vue
  3. 5
      src/views/modules/base/smartImport/cpts/createdTask.vue
  4. 138
      src/views/modules/base/smartImport/cpts/executeTask.vue
  5. 8
      src/views/modules/base/smartImport/cpts/smartImportAdd.vue
  6. 2
      src/views/modules/base/smartImport/index.vue

1
src/assets/scss/pages/smartImport.scss

@ -25,7 +25,6 @@
width: 240px;
}
.text-center{
border: 1px #c5c9d1 dashed ;
width: calc( 100% - 20px);
height: 175px;
display: flex;

135
src/views/components/resiSearch.vue

@ -124,141 +124,6 @@
</el-select>
</el-form-item>
<!-- <el-form-item label="居民姓名">
<el-input v-model="form.name"
placeholder="请输入"
size="small"
@keydown.native.enter="handleSearchFrom"
class="u-item-width-normal"
clearable></el-input>
</el-form-item> -->
<!-- <el-form-item label="联系电话">
<el-input v-model="form.mobile"
size="small"
placeholder="请输入"
class="u-item-width-normal"
clearable></el-input>
</el-form-item> -->
<!-- <el-form-item label="证件号">
<el-input v-model="form.idNum"
size="small"
placeholder="请输入"
class="u-item-width-normal"
clearable></el-input>
</el-form-item> -->
<!-- <el-form-item label="出生日期">
<el-date-picker v-model="form.birthdayStart"
type="date"
size="small"
class="u-item-width-daterange"
value-format="yyyy-MM-dd"
placeholder="开始日期"
:picker-options="pickerOptionsStart">
</el-date-picker>
<span class="u-data-tag"></span>
<el-date-picker v-model="form.birthdayEnd"
type="date"
size="small"
value-format="yyyy-MM-dd"
class="u-item-width-daterange u-data-tag"
placeholder="结束日期"
:picker-options="pickerOptionsEnd">
</el-date-picker>
</el-form-item> -->
<!-- <el-form-item label="本地户籍">
<el-select v-model="form.localResidenceFlag" class="u-item-width-normal" clearable size="small">
<el-option label='是' value='1'> </el-option>
<el-option label='否' value='0'> </el-option>
</el-select>
</el-form-item> -->
<!-- <el-form-item>
<span style="width:100px;text-align: right;padding-right:14px;display: inline-block; ">所属组织:</span>
<el-cascader class="u-item-width-normal"
size="small"
ref="myCascader"
v-model="form.agencyId"
:options="orgOptions"
:props="orgOptionProps"
:show-all-levels="false"
@change="handleChangeAgency"
clearable></el-cascader>
</el-form-item> -->
<!-- <el-form-item prop="villageId">
<div class="resi-cell">
<div class="resi-cell-value">
<span style="width:100px;text-align: right;padding-right:14px;display: inline-block; ">所属房屋:</span>
<el-select v-model.trim="form.villageId"
placeholder="请选择小区"
size="small"
filterable
clearable
class="u-item-width-communitycascader"
@clear="handleClearVillage"
@change="handleChangeV"
v-el-select-loadmore="loadmore"
>
<el-option v-for="item in optionsV"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model.trim="form.buildId"
placeholder="楼号"
size="small"
filterable
clearable
style="margin-left: 5px"
class="u-item-width-buildcascader"
:disabled="changeVDisabled"
@clear="handleClearBuild"
@change="handleChangeB">
<el-option v-for="item in optionsB"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model.trim="form.unitId"
:disabled="changeBDisabled"
placeholder="单元"
size="small"
filterable
clearable
style="margin-left: 5px"
class="u-item-width-buildcascader"
@click="handleClearDan"
@change="handleChangeD">
<el-option v-for="item in optionsD"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model.trim="form.homeId"
:disabled="changeDDisabled"
placeholder="房号"
size="small"
filterable
clearable
style="margin-left: 5px"
class="u-item-width-buildcascader">
<el-option v-for="item in optionsH"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
</div>
</el-form-item> -->
<el-form-item label="备注">
<el-input v-model="form.remark" placeholder="请输入" size="small" class="u-item-width-normal" clearable></el-input>
</el-form-item>

5
src/views/modules/base/smartImport/cpts/createdTask.vue

@ -78,7 +78,7 @@
action="uploadUlr"
:accept="'.xls,.xlsx'"
:limit="1"
:show-file-list="false"
drag
:before-upload="beforeExcelUpload"
:http-request="uploadHttpRequest"
class="text-center"
@ -453,7 +453,8 @@ export default {
.then((res) => {
console.log("res-up", res);
if (res.data.code == 0 && res.data.msg == "success") {
this.$emit("handelClickUpload");
this.$emit("handelClickUpload",fileCode);
} else this.$message.error(res.data.msg);
})
.catch((err) => {

138
src/views/modules/base/smartImport/cpts/executeTask.vue

@ -38,18 +38,44 @@
</div>
</div>
<h3 class="title-small">数据导入明细</h3>
<el-row type="flex" justify="" >
<el-col :span="24">
{{this.importSuccessNum || '--'}}条数据已导入<el-button type="text" @click="handelClickLook('success')">查看</el-button>
</el-col>
</el-row>
<el-row type="flex" justify="" >
<el-col :span="24">
{{this.importFailNum || '--'}}条问题数据导入失败<el-button type="text" @click="handelClickLook('fail')">查看</el-button>
</el-col>
</el-row>
<!-- <el-dialog title="列表"
:visible.sync="dialogVisible"
width="50%">
<el-table :data="tableDate"
border
style="width: 100%">
<el-table-column type="设置类型">
</el-table-column>
<el-table-column prop="渲染绑定的表数据tableDate中的哪个数据"
label="显示名字"
width="180">
</el-table-column>
</el-table>
<span slot="footer"
class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary"
@click="dialogVisible = false"> </el-button>
</span>
</el-dialog> -->
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { requestPost,requestGet} from "@/js/dai/request";
export default {
data() {
return {
form: {
importCategory: null,
taskName: null,
},
rules: {
importCategory: [
{ required: true, message: "请选择任务类型", trigger: "change" },
@ -59,15 +85,100 @@ export default {
],
},
resident_category_import_list: [],
taskId:null,
timerId:null,
importSuccessNum:null,
importFailNum:null,
importCategory:null,
};
},
props: {},
created() {
props: {
fileCode:{
type:String,
default:''
}
},
async created() {
await this.getTaskInfo();
// await this.getQuaryExcelDataList()
await this.startTimer();
},
methods: {
handelClickUpload() {
this.$emit("handelClickUpload");
startTimer() {
if (!this.timerId ) {
this.timerId = setInterval(this.getProcessRate, 3000);
}
},
//
stopTimer() {
clearInterval(this.timerId);
this.timerId = null;
},
async getProcessRate() {
let url = '/actual/base/intelligentImportData/processRate'
let parm = {
fileCode:this.fileCode
}
let res= await requestPost(url, parm)
if(res.code == 0){
if(res.data == 100){
this.stopTimer()
}
}else if(code >= 8000){
this.$message.error(msg);
}
},
async getTaskInfo () {
let url = '/actual/base/intelligentImportData/getTaskInfo'
let parm = {
fileCode:this.fileCode
}
let {data,code,msg} = await requestPost(url, parm)
if(code == 0){
this.taskId = data.taskId;
this.importFailNum = data.importFailNum.toString();
this.importSuccessNum = data.importSuccessNum.toString();
this.importCategory = data.importCategory
if(data.processStatus != 'processing'){
this.stopTimer()
}
}else if(code >= 8000){
this.$message.error(msg);
}
// this.$emit("handelClickUpload");
},
async handelClickLook (type) {
let url = '/actual/base/excelDataShow/quaryExcelDataList'
let parm = {
taskId:this.taskId,
boolranFlag:type == 'success'?'1':'0',
pageNo:1,
pageSize:20,
importCategory:this.importCategory
}
let {data,code,msg} = await requestPost(url, parm)
if(code == 0){
console.log(data);
}else if(code >= 8000){
this.$message.error(msg);
}
// this.$emit("handelClickUpload");
},
async cancelTask(){
let url = '/actual/base/intelligentImportData/cancelTask'
let parm = {
fileCode:this.fileCode,
taskId:this.taskId
}
let {data,code,msg} = await requestPost(url, parm)
if(code == 0){
console.log(data);
this.$message.info('任务已取消');
this.$emit("handelClickBack");
}else if(code >= 8000){
this.$message.error(msg);
}
},
handelClickBack() {
this.$confirm(`您确定要取消本次数据导入任务吗`, {
@ -75,15 +186,18 @@ export default {
cancelButtonText: '再想想',
type: 'warning'
}).then(() => {
this.$emit("handelClickBack");
this.cancelTask()
}).catch(() => {
});
},
handelClickBackList(){
this.$emit("handelClickBack");
}
},
destroyed(){
this.stopTimer()
},
components: {},
computed: {},
watch: {},

8
src/views/modules/base/smartImport/cpts/smartImportAdd.vue

@ -11,7 +11,7 @@
</div>
<div style="margin-top: 37px;">
<created-task v-if="progress == 1" @handelClickUpload="handelClickUpload" @handelClickBack="handelClickBack"></created-task>
<execute-task v-if="progress == 2"@handelClickBack="handelClickBack"></execute-task>
<execute-task v-if="progress == 2"@handelClickBack="handelClickBack" :fileCode="fileCode"></execute-task>
<complete-task v-if="progress == 3"@handelClickBack="handelClickBack"></complete-task>
</div>
</el-card>
@ -24,15 +24,17 @@ import completeTask from './completeTask.vue'
export default {
data() {
return {
progress:2,
progress:1,
fileCode:null
};
},
props: {},
created() {
},
methods: {
handelClickUpload(){
handelClickUpload(fileCode){
this.progress = 2;
this.fileCode = fileCode;
},
handelClickBack(){
this.$emit('handleClose');

2
src/views/modules/base/smartImport/index.vue

@ -116,7 +116,7 @@ export default {
pageNo: 1,
pageSize: window.localStorage.getItem("pageSize") || 20,
total: 1,
pageType: "add", // list add detail
pageType: "list", // list add detail
dicts: {
import_status:[],

Loading…
Cancel
Save