Files
JY1.0/src/views/WorkshopProcurement/ProcurementContractApproval/index.vue
2019-04-23 14:47:56 +08:00

522 lines
21 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div class="app-container">
<el-card>
<span>合同号:</span>
<el-select v-model="contractNumValue" placeholder="合同号" size="small" filterable clearable>
<el-option
v-for="item in contractNum"
:key="item.value"
:label="item.label"
:value="item.value">
<div style="float: left">{{ item.label }}</div>
<div style="float: right; color: #8492a6; font-size: 13px">{{ item.name }}</div>
</el-option>
</el-select>
<span>采购员:</span>
<el-input v-model="buyerName" placeholder="请双击选择" size="small" clearable style="width:120px" @dblclick.native="initBuyer();dialogVisible2=true;submitDisable=true"/>
<span>供应商:</span>
<el-input v-model="supplierName" placeholder="供应商" size="small" clearable/>
<el-button
type="success"
size="small"
icon="el-icon-search"
style="margin-left:10px"
@click="total1=0;pageCurrent1=1;pageSize1=10;searchTable1()">查询</el-button>
</el-card>
<el-card>
<el-table
v-loading="loading1"
:data="tableData1"
size="mini"
border
style="width: 100%;max-height: 300px;"
height="300px"
highlight-current-row
@row-click="searchTable2">
<el-table-column label="采购合同号" align="center">
<template slot-scope="scope">
{{ scope.row.采购合同编号 }}
</template>
</el-table-column>
<el-table-column label="采购合同名称" align="center">
<template slot-scope="scope">
{{ scope.row.采购合同名称 }}
</template>
</el-table-column>
<el-table-column label="规定到货时间" align="center">
<template slot-scope="scope">
{{ scope.row.规定到货时间 }}
</template>
</el-table-column>
<el-table-column label="供应商" align="center">
<template slot-scope="scope">
{{ scope.row.供应商名称 }}
</template>
</el-table-column>
<el-table-column label="采购员" align="center">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="总金额" align="center">
<template slot-scope="scope">
{{ scope.row.含税总金额 }}
</template>
</el-table-column>
<el-table-column label="预付款" align="center">
<template slot-scope="scope">
{{ scope.row.预付款 }}
</template>
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" icon="el-icon-edit-outline" @click="Open(scope.row)">审批</el-button>
</template>
</el-table-column>
</el-table>
<div class="block" style="margin-top: 10px;">
<el-pagination
:current-page="pageCurrent1"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize1"
:total="total1"
style="display:inline-block;width:50%"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange1"
@current-change="handleCurrentChange1"/>
</div>
</el-card>
<el-card>
<div style="width:1000px;margin-left: 300px">
<el-card>
<table id="1" cellspacing="0px" align="center" border width="100%" style="">
<tr style="height: 40px">
<td colspan="2" align="center" style="font-weight: bold">GAOJING</td>
<td colspan="5" align="center" style="font-weight: bold">产品销售合同</td>
<td colspan="1" rowspan="3" style="width: 119px"><img id="img" alt=""></td>
</tr>
<tr style="height: 40px">
<td colspan="1" align="center">需方</td>
<td colspan="3" align="center">江苏高精机电装备有限公司</td>
<td colspan="1" align="center">合同编号</td>
<td colspan="2" align="center">{{ contract }}</td>
</tr>
<tr style="height: 40px">
<td colspan="1" align="center">供方</td>
<td colspan="3" align="center">{{ supplier }}</td>
<td colspan="1" align="center">签订地点</td>
<td colspan="2" align="center">江苏盐城</td>
</tr>
</table>
<div style="margin-top: 20px;line-height: 30px">根据中华人民共和国合同法的有关规定经供需双方友好协商在平等自愿的基础上定立本合同以便供需双方共同遵守</div>
<div style="line-height: 30px"> 产品名称规格型号材质数量单价和交货期</div>
<table id="50" cellspacing="0px" align="center" border width="100%" style="">
<tbody id="4">
<tr id="tableHead" style="height: 40px">
<td colspan="1" align="center">图号</td>
<td colspan="1" align="center">名称</td>
<td colspan="1" align="center">规格</td>
<td colspan="1" align="center">交货期</td>
<td colspan="1" align="center">备注</td>
<td colspan="1" align="center">数量</td>
<td colspan="1" align="center">单价</td>
<td colspan="1" align="center">总价</td>
</tr>
<!--</tbody>-->
<!--&lt;!&ndash;<tbody id="4">&ndash;&gt;-->
<!--&lt;!&ndash;<tr id="tableHead" style="height: 40px">&ndash;&gt;-->
<!--&lt;!&ndash;<td colspan="1" align="center">物料名称</td>&ndash;&gt;-->
<!--&lt;!&ndash;<td colspan="1" align="center">物料规格</td>&ndash;&gt;-->
<!--&lt;!&ndash;<td colspan="1" align="center">物料型号</td>&ndash;&gt;-->
<!--&lt;!&ndash;<td colspan="1" align="center">交货期</td>&ndash;&gt;-->
<!--&lt;!&ndash;<td colspan="1" align="center">备注</td>&ndash;&gt;-->
<!--&lt;!&ndash;<td colspan="1" align="center">数量</td>&ndash;&gt;-->
<!--&lt;!&ndash;<td colspan="1" align="center">单价</td>&ndash;&gt;-->
<!--&lt;!&ndash;<td colspan="1" align="center">总价</td>&ndash;&gt;-->
<!--&lt;!&ndash;</tr>&ndash;&gt;-->
</tbody>
<tfoot>
<tr style="height: 40px">
<td colspan="7">总价: (人民币){{ RMB }}(未税) </td>
<td colspan="1" align="center">{{ TotalAmount }}</td>
</tr>
<tr style="height: 40px">
<td colspan="7">总价: (人民币){{ RMB1 }}({{ taxRate }}增值税) </td>
<td colspan="1" align="center">{{ TotalAmount1 }}</td>
</tr>
</tfoot>
</table>
<div style="line-height: 30px">以上价格为含税增值税价格供方开具真实有效的{{ taxRate }}增值税发票</div>
<div id="23" style="line-height: 30px"/>
<table id="66" cellspacing="0px" align="center" border width="100%" style="margin-top: 30px">
<tbody id="67">
<tr style="height: 35px">
<td colspan="4" align="center"> </td>
<td colspan="4" align="center"> </td>
</tr>
<tr style="height: 35px">
<th style="width: 15%">单位名称</th>
<td style="width: 35%" colspan="3" align="center"/>
<th style="width: 15%">单位名称</th>
<td style="width: 35%" colspan="3" align="center">江苏高精</td>
</tr>
<tr style="height: 35px">
<th style="width: 15%">法定代表人</th>
<td style="width: 35%" colspan="3" align="center"/>
<th style="width: 15%">法定代表人</th>
<td style="width: 35%" colspan="3" align="center"/>
</tr>
<tr style="height: 35px">
<th style="width: 15%">委托代理人</th>
<td style="width: 35%" colspan="3" align="center"/>
<th style="width: 15%">委托代理人</th>
<td style="width: 35%" colspan="3" align="center"/>
</tr>
<tr style="height: 35px">
<th style="width: 15%">电话</th>
<td style="width: 35%" colspan="3" align="center"/>
<th style="width: 15%">电话</th>
<td style="width: 35%" colspan="3" align="center"/>
</tr>
<tr v-if="type==='1'" style="height: 35px">
<th style="width: 15%">传真</th>
<td style="width: 35%" colspan="3" align="center"/>
<th style="width: 15%">传真</th>
<td style="width: 35%" colspan="3" align="center"/>
</tr>
<tr v-if="type==='1'" style="height: 35px">
<th style="width: 15%">开户银行</th>
<td style="width: 35%" colspan="3" align="center"/>
<th style="width: 15%">开户银行</th>
<td style="width: 35%" colspan="3" align="center"/>
</tr>
<tr v-if="type==='1'" style="height: 35px">
<th style="width: 15%">账号</th>
<td style="width: 35%" colspan="3" align="center"/>
<th style="width: 15%">账号</th>
<td style="width: 35%" colspan="3" align="center"/>
</tr>
<tr v-if="type==='1'" style="height: 35px">
<th style="width: 15%">税号</th>
<td style="width: 35%" colspan="3" align="center"/>
<th style="width: 15%">税号</th>
<td style="width: 35%" colspan="3" align="center"/>
</tr>
<tr v-if="type==='1'" style="height: 35px">
<th style="width: 15%">邮政编码</th>
<td style="width: 35%" colspan="3" align="center"/>
<th style="width: 15%">邮政编码</th>
<td style="width: 35%" colspan="3" align="center"/>
</tr>
</tbody>
</table>
<div style="line-height: 25px;margin-top: 10px">签订时间____年__月__日</div>
<div style="line-height: 25px">有效期限____年__月__日至____年__月__日</div>
</el-card>
</div>
</el-card>
<el-dialog :visible.sync="dialogVisible2" title="采购员选择" center style="min-height: 300px;" width="40%">
<el-table
:data="tableData02"
size="small"
border
style="width: 100%;min-height:300px"
height="300px"
highlight-current-row
@row-click="clickBuyer">
<el-table-column label="考勤编号" align="center">
<template slot-scope="scope">
{{ scope.row.考勤编号 }}
</template>
</el-table-column>
<el-table-column label="姓名" align="center">
<template slot-scope="scope">
{{ scope.row.姓名 }}
</template>
</el-table-column>
<el-table-column label="性别" align="center">
<template slot-scope="scope">
{{ scope.row.性别 }}
</template>
</el-table-column>
<el-table-column label="工作岗位" align="center">
<template slot-scope="scope">
{{ scope.row.岗位名称 }}
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button :disabled="submitDisable" type="primary" size="small" icon="el-icon-check" @click="submitSelectBuyer">确定</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="dialogVisible3" title="审批" center style="min-height: 300px;" width="20%">
<el-form ref="form2" :model="form2" :rules="rules2" label-position="left" label-width="110px" class="demo-ruleForm">
<el-form-item label="审批是否通过" prop="审批是否通过" center>
<el-select v-model="form2.审批是否通过" size="small" @change="selectChange">
<el-option
v-for="item in approval"
:key="item.value"
:label="item.label"
:value="item.value"/>
</el-select>
</el-form-item>
<el-form-item label="未通过原因" prop="未通过原因">
<el-input v-model="form2.未通过原因" :disabled="disabled" size="small"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" size="small" @click="submitApproval('form2')">确定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { initContract, initBuyer, searchTable1, searchTable2, submitApproval } from '@/api/WorkshopProcurement/ProcurementContractApproval'
import QRCode from 'qrcode'
export default {
data() {
return {
RMB: '',
TotalAmount: '',
check1: 0,
check2: 0,
check3: 0,
check4: 0,
startEndDate: '',
contract: '',
contractNumValue: '',
contractNum: [],
ProcurementContractNum: '',
buyerName: '',
buyerValue: '',
supplier: '',
supplierName: '',
supplierValue: '',
taxRate: '',
TotalAmount1: '',
RMB1: '',
total1: 0,
QGNUM: '',
type: '',
pageCurrent1: 1,
pageSize1: 10,
tableData1: [],
loading1: false,
dialogVisible1: false,
dialogVisible3: false,
form1: {},
returns: [],
returns1: [],
tableData01: [],
tableData02: [],
submitDisable: true,
dialogVisible2: false,
approval: [
{
value: 1,
label: '是'
},
{
value: 2,
label: '否'
}
],
disabled: true,
form2: {
审批是否通过: '',
未通过原因: ''
},
rules2: {
审批是否通过: [{ required: true, message: '请选择', trigger: 'change' }]
},
tableData2: [],
textarea: ``,
contractValue: '' // 显示表2和变更合同用的变量
}
},
created() {
this.fetchData()
},
methods: {
fetchData() {
this.contractNum = []
initContract().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.contractNum.push({
label: response.data[i].采购合同编号,
name: response.data[i].采购合同名称,
value: response.data[i].采购合同流水号
})
}
})
},
initBuyer() { // 初始化采购人员
initBuyer().then(response => {
this.tableData02 = response.data
})
},
clickBuyer(row) { // 点击采购员表某一行
this.submitDisable = false
this.buyerName = row.姓名
this.buyerValue = row.人员编号
},
submitSelectBuyer() { // 确定
this.dialogVisible2 = false
},
searchTable1() {
this.tableData2 = []
this.textarea = ``
this.loading1 = true
if (this.startEndDate === '' || this.startEndDate === null || this.startEndDate[0] === '' || this.startEndDate[1] === '') {
this.check1 = 0
this.startEndDate = ''
} else { this.check1 = 1 }
this.contractNumValue ? this.check2 = 1 : this.check2 = 0
this.buyerName ? this.check3 = 1 : this.check3 = 0
this.supplierName ? this.check4 = 1 : this.check4 = 0
searchTable1(this.pageCurrent1, this.pageSize1, this.check1, this.startEndDate[0], this.startEndDate[1], this.check2, this.contractNumValue, this.check3, this.buyerValue, this.check4, this.supplierName).then(response => {
console.log(response)
this.loading1 = false
for (let j = 0; j < response.data.rows.length; j++) {
if (response.data.rows[j].预到货时间 !== null) {
response.data.rows[j].预到货时间 = response.data.rows[j].预到货时间.substring(0, response.data.rows[j].预到货时间.indexOf(' '))
}
if (response.data.rows[j].规定到货时间 !== null) {
response.data.rows[j].规定到货时间 = response.data.rows[j].规定到货时间.substring(0, response.data.rows[j].规定到货时间.indexOf(' '))
}
}
this.tableData1 = response.data.rows
this.total1 = response.data.total
})
},
Open(row) {
console.log(row)
this.dialogVisible3 = true
this.ProcurementContractNum = row.采购合同流水号
this.QGNUM = row.请购单流水号
},
selectChange() {
if (this.form2.审批是否通过 === 2) {
this.disabled = false
} else if (this.form2.审批是否通过 === 1) {
this.disabled = true
}
},
submitApproval(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
submitApproval(this.ProcurementContractNum, this.form2.审批是否通过, this.form2.未通过原因, this.QGNUM).then(response => {
if (response.data[0].result === '1') {
this.$message.success('审批成功')
this.dialogVisible3 = false
this.searchTable1()
} else { this.$message.error('审批失败') }
})
} else {
console.log('error submit!!')
return false
}
})
},
handleSizeChange1(val) {
this.pageCurrent1 = 1
this.pageSize1 = val
this.searchTable1()
},
handleCurrentChange1(val) {
this.pageCurrent1 = val
this.searchTable1()
},
searchTable2(row) {
this.type = row.模板类型
console.log(row)
this.textarea = row.合同文本
this.supplier = row.供应商名称
this.contract = row.采购合同编号
this.taxRate = row.税率
this.RMB = row.总金额_文本
this.TotalAmount = row.总金额
this.TotalAmount1 = parseInt((row.含税总金额) * 100) / 100
this.RMB1 = row.含税总金额_文本
document.getElementById('23').innerText = this.textarea
this.contractValue = parseInt(row.采购合同流水号)
const opts = {
errorCorrectionLevel: 'H',
type: 'image/jpeg',
rendererOpts: {
quality: 0.3
}
}
QRCode.toDataURL(row.采购合同流水号, opts, function(err, url) {
if (err) throw err
const img = document.getElementById('img')
img.src = url
})
searchTable2(this.contractValue).then(response => {
this.returns = response.data
const children = document.getElementsByClassName('tableData')
const parent = document.getElementById('4')
if (children.length !== 0) {
for (let i = children.length - 1; i >= 0; i--) {
parent.removeChild(children[i])
}
}
const tr = []
for (let i = 0; i < this.returns.length; i++) {
tr[i] = document.createElement('tr')
tr[i].setAttribute('class', 'tableData')
tr[i].innerHTML = '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' +
'<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>' + '<td colspan="1" align="center"></td>'
document.getElementById('tableHead').after(tr[i])
}
for (let j = 0; j < this.returns.length; j++) {
document.getElementsByClassName('tableData')[j].children[0].innerHTML = response.data[j].图号
document.getElementsByClassName('tableData')[j].children[1].innerHTML = response.data[j].物料名称
document.getElementsByClassName('tableData')[j].children[2].innerHTML = response.data[j].规格
document.getElementsByClassName('tableData')[j].children[3].innerHTML = response.data[j].物料计划到货时间.split(' ')[0]
document.getElementsByClassName('tableData')[j].children[4].innerHTML = response.data[j].备注
document.getElementsByClassName('tableData')[j].children[5].innerHTML = response.data[j].数量
document.getElementsByClassName('tableData')[j].children[6].innerHTML = response.data[j].单价
document.getElementsByClassName('tableData')[j].children[7].innerHTML = response.data[j].金额
}
})
}
}
}
</script>
<style scoped>
.el-card{
margin-bottom: 15px;
}
.el-date-editor{
width:200px
}
.el-select{
width:200px
}
.el-input{
width:200px
}
span{
margin: 10px 0 10px 10px;
}
.searchForm .el-form-item{
margin-bottom: 5px;
}
</style>
<style>
.tableData{
height: 30px;
}
.tableData1{
height: 30px;
}
</style>