Browse Source

ftp 下载 sxm 2021-11-2

master
[li_she] 4 years ago
parent
commit
2a3b386401
  1. 3
      src/views/common/login.vue
  2. 202
      src/views/modules/purchaseorder/purchaseRequisition.vue

3
src/views/common/login.vue

@ -173,4 +173,7 @@
border-radius: 4px; border-radius: 4px;
} }
} }
/deep/ .el-form-item{
margin-bottom:-5px;
}
</style> </style>

202
src/views/modules/purchaseorder/purchaseRequisition.vue

@ -44,11 +44,11 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="getDataList('Y')" type="primary">{{buttons.search}}</el-button>
<el-button @click="initAddModel(null)" type="primary">{{buttons.addLabelName}}</el-button>
<el-button @click="saveColumnList()" type="primary" v-show="showDefault">{{buttons.defaultTable}}
<el-button @click="getDataList('Y')" type="primary">{{ buttons.search }}</el-button>
<el-button @click="initAddModel(null)" type="primary">{{ buttons.addLabelName }}</el-button>
<el-button @click="saveColumnList()" type="primary" v-show="showDefault">{{ buttons.defaultTable }}
</el-button> </el-button>
<el-button @click="userSetting()" type="primary">{{ buttons.settingTable}}</el-button>
<el-button @click="userSetting()" type="primary">{{ buttons.settingTable }}</el-button>
<download-excel <download-excel
:fields="fields()" :fields="fields()"
:data="exportData" :data="exportData"
@ -62,11 +62,11 @@
:before-finish="finishDownload" :before-finish="finishDownload"
worksheet="导出信息" worksheet="导出信息"
class="el-button el-button--primary el-button--medium"> class="el-button el-button--primary el-button--medium">
{{buttons.download}}
{{ buttons.download }}
</download-excel> </download-excel>
<el-button v-if="isAuth(':prd:delete')" type="danger" @click="deleteHandle()" <el-button v-if="isAuth(':prd:delete')" type="danger" @click="deleteHandle()"
:disabled="dataListSelections.length <= 0">{{ buttons.deleteList}}
:disabled="dataListSelections.length <= 0">{{ buttons.deleteList }}
</el-button> </el-button>
</el-form-item> </el-form-item>
@ -90,7 +90,7 @@
:width="item.columnWidth" :width="item.columnWidth"
:label="item.columnLabel"> :label="item.columnLabel">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span> style="width: 100px; height: 80px"/></span>
</template> </template>
@ -103,10 +103,12 @@
width="120" width="120"
:label="buttons.operating"> :label="buttons.operating">
<template slot-scope="scope"> <template slot-scope="scope">
<a v-if="scope.row.authorizeFlag == 'N'" @click="initAddModel(scope.row)">{{buttons.edit}}</a>
<a v-if="scope.row.authorizeFlag == 'N'"@click="updateAuthorizeFlag(scope.row)">{{buttons.close}}</a>
<a v-if="scope.row.authorizeFlag == 'Y' && scope.row.approvedFlag != 'Y' && scope.row.approveresult == '审批未通过'"@click="initReapply(scope.row)">{{buttons.reapply}}</a>
<a @click="initReviewDetails(scope.row.requisitionno)">{{buttons.reviewDetails}}</a>
<a v-if="scope.row.authorizeFlag == 'N'" @click="initAddModel(scope.row)">{{ buttons.edit }}</a>
<a v-if="scope.row.authorizeFlag == 'N'" @click="updateAuthorizeFlag(scope.row)">{{ buttons.close }}</a>
<a
v-if="scope.row.authorizeFlag == 'Y' && scope.row.approvedFlag != 'Y' && scope.row.approveresult == '审批未通过'"
@click="initReapply(scope.row)">{{ buttons.reapply }}</a>
<a @click="initReviewDetails(scope.row.requisitionno)">{{ buttons.reviewDetails }}</a>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -198,24 +200,27 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="inputSearch6"> <el-form-item :label="inputSearch6">
<el-input style="text-align: left;width: 143px" onkeyup="this.value = this.value.toUpperCase()" v-model="currentPRDetailData.partno"></el-input>
<el-input style="text-align: left;width: 143px" onkeyup="this.value = this.value.toUpperCase()"
v-model="currentPRDetailData.partno"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="inputSearch11"> <el-form-item :label="inputSearch11">
<el-input style="text-align: left;width: 143px" v-model="currentPRDetailData.partdesc"></el-input> <el-input style="text-align: left;width: 143px" v-model="currentPRDetailData.partdesc"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="inputSearch7"> <el-form-item :label="inputSearch7">
<el-input style="text-align: left;width: 143px" @change="getNumber()" oninput="value=value.replace(/^\.+|[^\d.]/g,'')"
<el-input style="text-align: left;width: 143px" @change="getNumber()"
oninput="value=value.replace(/^\.+|[^\d.]/g,'')"
v-model="currentPRDetailData.qty"></el-input> v-model="currentPRDetailData.qty"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="inputSearch8"> <el-form-item :label="inputSearch8">
<el-input style="text-align: left;width: 143px" v-model="currentPRDetailData.price" @change="getNumber()" oninput="value=value.replace(/^\.+|[^\d.]/g,'')"></el-input>
<el-input style="text-align: left;width: 143px" v-model="currentPRDetailData.price" @change="getNumber()"
oninput="value=value.replace(/^\.+|[^\d.]/g,'')"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="inputSearch9"> <el-form-item :label="inputSearch9">
<el-input style="text-align: left;width: 143px" <el-input style="text-align: left;width: 143px"
v-model="currentPRDetailData.totalPrice" v-model="currentPRDetailData.totalPrice"
:disabled="true"></el-input> :disabled="true"></el-input>
</el-form-item> </el-form-item>
<!--<el-form-item style="margin-top: 10px">
<el-form-item style="margin-top: 10px">
<upload v-on:childByValue="childByValue"></upload> <upload v-on:childByValue="childByValue"></upload>
</el-form-item> </el-form-item>
<el-table <el-table
@ -236,7 +241,7 @@
:width="item.columnWidth" :width="item.columnWidth"
:label="item.columnLabel"> :label="item.columnLabel">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span> style="width: 100px; height: 80px"/></span>
</template> </template>
@ -248,10 +253,10 @@
width="50" width="50"
:label="buttons.operating"> :label="buttons.operating">
<template slot-scope="scope"> <template slot-scope="scope">
<a @click="fileDownload(scope.row)">{{buttons.fileDownload}}</a>
<a @click="fileDownload(scope.row)">{{ buttons.fileDownload }}</a>
</template> </template>
</el-table-column> </el-table-column>
</el-table>-->
</el-table>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="addPRDetailFlag = false">取消</el-button> <el-button @click="addPRDetailFlag = false">取消</el-button>
@ -279,7 +284,7 @@
:width="item.columnWidth" :width="item.columnWidth"
:label="item.columnLabel"> :label="item.columnLabel">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
<span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
style="width: 100px; height: 80px"/></span> style="width: 100px; height: 80px"/></span>
</template> </template>
@ -292,7 +297,7 @@
<script> <script>
import {
import {
searchSysLanguagePackList, searchSysLanguagePackList,
searchSysLanguageParam, searchSysLanguageParam,
searchFunctionButtonList, searchFunctionButtonList,
@ -300,17 +305,17 @@
searchSysLanguage, searchSysLanguage,
searchLanguageListByLanguageCode, searchLanguageListByLanguageCode,
saveSysLanguageOne saveSysLanguageOne
} from "@/api/sysLanguage.js"
import {
} from "@/api/sysLanguage.js"
import {
saveTableDefaultList, saveTableDefaultList,
saveTableUser, saveTableUser,
getTableDefaultListLanguage, getTableDefaultListLanguage,
getTableUserListLanguage getTableUserListLanguage
} from "@/api/table.js"
import {
} from "@/api/table.js"
import {
userFavoriteList, saveUserFavorite, removeUserFavorite userFavoriteList, saveUserFavorite, removeUserFavorite
} from '@/api/userFavorite.js'
import {
} from '@/api/userFavorite.js'
import {
getPRHeaderList, getPRHeaderList,
getTblBaseDataList, getTblBaseDataList,
savePRDetail, savePRDetail,
@ -319,10 +324,11 @@
authorizationHistList, authorizationHistList,
updatePRHeaderAuthorizeFlag, updatePRHeaderAuthorizeFlag,
downFtpFile, downFtpFile,
} from '@/api/purchaseorder/purchaseRequisition.js'
import upload from "../common/upload";
export default {
components:{upload},
} from '@/api/purchaseorder/purchaseRequisition.js'
import upload from "../common/upload";
export default {
components: {upload},
data() { data() {
return { return {
fileList: [], fileList: [],
@ -351,25 +357,25 @@
suppliername: '', suppliername: '',
orderType: '', orderType: '',
partno: '', partno: '',
partdesc : '',
partdesc: '',
qty: 0, qty: 0,
price: 0, price: 0,
totalPrice: 0, totalPrice: 0,
convertFactor : 0,
currency : '',
status : '',
taxcode : '',
currencyRate : 1,
additionalCose : 0,
orderref1 : '',
orderref2 : '',
convertFactor: 0,
currency: '',
status: '',
taxcode: '',
currencyRate: 1,
additionalCose: 0,
orderref1: '',
orderref2: '',
}, },
mainQueryData: { mainQueryData: {
requisitionno: '', requisitionno: '',
orderType: '', orderType: '',
partno: '', partno: '',
authorizeFlag: 'N', authorizeFlag: 'N',
approveresult : '',
approveresult: '',
site: this.$store.state.user.site, site: this.$store.state.user.site,
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
limit: '', limit: '',
@ -378,9 +384,9 @@
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
site: this.$store.state.user.site, site: this.$store.state.user.site,
// //
reviewDetailsFlag : false,
reviewDetailsFlag: false,
//list //list
reviewDetailsList : [],
reviewDetailsList: [],
// //
favorite: false, favorite: false,
addLanguage: false, addLanguage: false,
@ -730,7 +736,7 @@
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: false, fixed: false,
columnWidth : 135,
columnWidth: 135,
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
@ -830,7 +836,7 @@
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: false, fixed: false,
columnWidth : 135,
columnWidth: 135,
}, },
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
@ -847,7 +853,7 @@
sortLv: 0, sortLv: 0,
status: true, status: true,
fixed: false, fixed: false,
columnWidth : 70,
columnWidth: 70,
}, },
], ],
// //
@ -873,10 +879,10 @@
defaultTable: '设置默认配置', defaultTable: '设置默认配置',
addLabelName: '新增', addLabelName: '新增',
operating: '操作', operating: '操作',
reviewDetails : "审批详情",
close : '关闭',
fileDownload : '下载',
reapply : '重新申请',
reviewDetails: "审批详情",
close: '关闭',
fileDownload: '下载',
reapply: '重新申请',
}, },
// start // start
exportData: [], exportData: [],
@ -993,27 +999,45 @@
}, },
methods: { methods: {
fileDownload(row){
let downLoadData = {
id : row.id
//
fileDownload(row) {
this.$http({
url: this.$http.adornUrl('ftp/file/downFtpFile'),
method: 'post',
data: JSON.stringify(row),
responseType: 'blob',
headers: {
'Content-Type': 'application/json'
} }
downFtpFile(downLoadData).then(({data}) =>{
}).then(({data}) => {
//
const blob = new Blob([data], {type: "application/octet-stream"})
//
const fileName = row.fileName
// a
const linkNode = document.createElement('a')
linkNode.download = fileName // adownload
linkNode.style.display = 'none'
linkNode.href = URL.createObjectURL(blob) // Blob URL
document.body.appendChild(linkNode)
linkNode.click() //
URL.revokeObjectURL(linkNode.href) // URL
document.body.removeChild(linkNode)
}) })
}, },
childByValue (childValue) {
childByValue(childValue) {
// childValue // childValue
this.fileList = childValue this.fileList = childValue
}, },
updateAuthorizeFlag(row){
updateAuthorizeFlag(row) {
let saveData = { let saveData = {
site : row.site,
requisitionno : row.requisitionno,
status : '已关闭',
authorizeFlag : 'Y',
approvedFlag : 'N',
site: row.site,
requisitionno: row.requisitionno,
status: '已关闭',
authorizeFlag: 'Y',
approvedFlag: 'N',
} }
updatePRHeaderAuthorizeFlag(saveData).then(({data}) =>{
updatePRHeaderAuthorizeFlag(saveData).then(({data}) => {
if (data.code == 0) { if (data.code == 0) {
this.getDataList() this.getDataList()
} }
@ -1025,22 +1049,22 @@
}); });
}) })
}, },
initReviewDetails(orderRef1){
initReviewDetails(orderRef1) {
this.reviewDetailsFlag = true this.reviewDetailsFlag = true
this.reviewDetailsList = [] this.reviewDetailsList = []
this.getAuthorizationHistList(orderRef1) this.getAuthorizationHistList(orderRef1)
}, },
getAuthorizationHistList(orderRef1){
getAuthorizationHistList(orderRef1) {
let queryData = { let queryData = {
site : this.site,
orderRef1 : orderRef1,
authRuleId : 5,
site: this.site,
orderRef1: orderRef1,
authRuleId: 5,
} }
authorizationHistList(queryData).then(({data}) =>{
authorizationHistList(queryData).then(({data}) => {
this.reviewDetailsList = data.rows this.reviewDetailsList = data.rows
}) })
}, },
getNumber(){
getNumber() {
this.currentPRDetailData.totalPrice = this.decimalUtil.mul(this.currentPRDetailData.qty, this.currentPRDetailData.price) this.currentPRDetailData.totalPrice = this.decimalUtil.mul(this.currentPRDetailData.qty, this.currentPRDetailData.price)
}, },
savePRDetail() { savePRDetail() {
@ -1085,7 +1109,7 @@
} }
}); });
return return
}else if (this.currentPRDetailData.partDesc === 0 || this.currentPRDetailData.partDesc <= 0) {
} else if (this.currentPRDetailData.partDesc === 0 || this.currentPRDetailData.partDesc <= 0) {
this.$alert('请输入刀模名称!', '操作提示', { this.$alert('请输入刀模名称!', '操作提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
callback: action => { callback: action => {
@ -1109,7 +1133,7 @@
this.$alert(data.msg, '操作提示', { this.$alert(data.msg, '操作提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
callback: action => { callback: action => {
if(data.code == 0){
if (data.code == 0) {
this.addPRDetailFlag = false this.addPRDetailFlag = false
} }
this.addPRDetailFlag = false this.addPRDetailFlag = false
@ -1134,12 +1158,12 @@
this.orderTypeList = data.rows this.orderTypeList = data.rows
}) })
}, },
initReapply(row){
initReapply(row) {
this.currentPRDetailData.orderref1 = row.requisitionno this.currentPRDetailData.orderref1 = row.requisitionno
this.currentPRDetailData.orderref2 = row.itemno this.currentPRDetailData.orderref2 = row.itemno
this.initAddModel(null ,'Y')
this.initAddModel(null, 'Y')
}, },
initAddModel(row ,val) {
initAddModel(row, val) {
this.fileList = [] this.fileList = []
if (row == null) { if (row == null) {
this.currentPRDetailData.requisitionno = '' this.currentPRDetailData.requisitionno = ''
@ -1166,7 +1190,7 @@
this.currentPRDetailData.taxCode = row.taxCode this.currentPRDetailData.taxCode = row.taxCode
this.currentPRDetailData.partDesc = row.partdesc this.currentPRDetailData.partDesc = row.partdesc
} }
if(val != 'Y'){
if (val != 'Y') {
this.currentPRDetailData.orderref1 = null this.currentPRDetailData.orderref1 = null
this.currentPRDetailData.orderref2 = null this.currentPRDetailData.orderref2 = null
} }
@ -1459,16 +1483,16 @@
finishDownload() { finishDownload() {
console.log("数据下载完成") console.log("数据下载完成")
}, },
fields(){
fields() {
let json = "{" let json = "{"
this.columnList.forEach((item,index) =>{
if (index == this.columnList.length-1 ){
json +="\""+item.columnLabel+"\"" +":"+"\""+item.columnProp+"\""
}else {
json += "\""+item.columnLabel+"\"" +":"+"\""+item.columnProp+"\""+ ","
this.columnList.forEach((item, index) => {
if (index == this.columnList.length - 1) {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\""
} else {
json += "\"" + item.columnLabel + "\"" + ":" + "\"" + item.columnProp + "\"" + ","
} }
}) })
json +="}"
json += "}"
let s = eval("(" + json + ")") let s = eval("(" + json + ")")
return s return s
@ -1480,10 +1504,10 @@
this.getFunctionButtonList() this.getFunctionButtonList()
this.favoriteIsOk() this.favoriteIsOk()
} }
}
}
</script> </script>
<style> <style>
.sl-input {
.sl-input {
background-color: transparent; background-color: transparent;
border: 0 !important; border: 0 !important;
font-size: 12px !important; font-size: 12px !important;
@ -1491,17 +1515,17 @@
line-height: 14px !important; line-height: 14px !important;
background-color: transparent !important; background-color: transparent !important;
width: 140px; width: 140px;
}
}
.sl-input:focus, textarea:focus {
.sl-input:focus, textarea:focus {
outline: none; outline: none;
}
}
.sl-svg {
.sl-svg {
overflow: hidden; overflow: hidden;
float: right; float: right;
}
}
</style> </style>
Loading…
Cancel
Save