|
|
@@ -5,51 +5,73 @@
|
|
|
</div>
|
|
|
<div class="ml-20 mr-20 mt-20">
|
|
|
<avue-crud
|
|
|
- :option="option"
|
|
|
- :data="data"
|
|
|
- ref="crud"
|
|
|
- v-model="form"
|
|
|
- :before-open="beforeOpen"
|
|
|
- @row-del="rowDel"
|
|
|
- @row-save="handleRowSave"
|
|
|
- @row-update="rowUpdate"
|
|
|
- @on-load="onLoad"
|
|
|
+ :option="option"
|
|
|
+ :data="data"
|
|
|
+ ref="crud"
|
|
|
+ v-model="form"
|
|
|
+ :before-open="beforeOpen"
|
|
|
+ @row-del="rowDel"
|
|
|
+ @row-save="handleRowSave"
|
|
|
+ @on-load="onLoad"
|
|
|
>
|
|
|
- <template slot-scope="{row}"
|
|
|
- slot="fileIds">
|
|
|
- <div>
|
|
|
- <upload-file :max="3" :drag="true" ref='upload' @success="uploadsuccess1" :show-list="true"/>
|
|
|
+ <template #fileIds-form="{ row, type }">
|
|
|
+ <div v-if="type === 'view'">
|
|
|
+ <div
|
|
|
+ v-for="i in form.accountInformationFileList"
|
|
|
+ :key="i.id"
|
|
|
+ class="pointer"
|
|
|
+ @click="previewFile(i)"
|
|
|
+ >
|
|
|
+ {{ i.title }}
|
|
|
+ <el-button text type="primary" plain>查看</el-button>
|
|
|
</div>
|
|
|
- <div class="flex flex-center mt-5" v-else v-for="item in form.detailFileUrl">
|
|
|
- <el-image :src="item" style="height: 25%;width: 25%" :preview-src-list="[item]"></el-image>
|
|
|
+ </div>
|
|
|
+ <div v-else>
|
|
|
+ <uploads :max="9" @success="uploadSucc" :auto="true" />
|
|
|
+ <div>
|
|
|
+ <div v-for="item in fileList" :key="item.id">
|
|
|
+ {{ item.originalFileName }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
</avue-crud>
|
|
|
</div>
|
|
|
+ <el-image-viewer
|
|
|
+ v-if="showImage"
|
|
|
+ :url-list="preList"
|
|
|
+ @close="showImage = false"
|
|
|
+ />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import uploadFile from '../../../components/upload-file.vue'
|
|
|
+import uploads from '../../../components/uploads.vue'
|
|
|
+import api from '@/api/index.js'
|
|
|
export default {
|
|
|
name: 'info',
|
|
|
- components:{uploadFile}
|
|
|
+ components: { uploads },
|
|
|
data() {
|
|
|
return {
|
|
|
+ id: '',
|
|
|
+ showImage: false,
|
|
|
+ preList: [],
|
|
|
+ show: false,
|
|
|
+ fileList: [],
|
|
|
form: {},
|
|
|
data: [],
|
|
|
option: {
|
|
|
align: 'center',
|
|
|
menuAlign: 'center',
|
|
|
menuWidth: 220,
|
|
|
- menuTitle: '支付凭证',
|
|
|
+ height: 480,
|
|
|
size: 'mini',
|
|
|
addBtn: true,
|
|
|
- editBtn: true,
|
|
|
+ editBtn: false,
|
|
|
+ editBtnText: '支付凭证',
|
|
|
editBtnIcon: 'Plus',
|
|
|
viewBtn: true,
|
|
|
- delBtn: true,
|
|
|
+ delBtn: false,
|
|
|
refreshBtn: false,
|
|
|
columnBtn: false,
|
|
|
labelWidth: 140,
|
|
|
@@ -58,11 +80,13 @@ export default {
|
|
|
{
|
|
|
label: '名称',
|
|
|
prop: 'name',
|
|
|
- rules: [{
|
|
|
- required: true,
|
|
|
- message: "请输入台账名称",
|
|
|
- trigger: "blur"
|
|
|
- }]
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入台账名称',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
label: '款项类别',
|
|
|
@@ -73,72 +97,88 @@ export default {
|
|
|
label: 'dictValue',
|
|
|
value: 'dictKey'
|
|
|
},
|
|
|
- rules: [{
|
|
|
- required: true,
|
|
|
- message: "请选择款项类别",
|
|
|
- trigger: "blur"
|
|
|
- }]
|
|
|
-
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择款项类别',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
label: '支付金额',
|
|
|
prop: 'payment',
|
|
|
type: 'number',
|
|
|
- rules: [{
|
|
|
- required: true,
|
|
|
- message: "请输入支付金额",
|
|
|
- trigger: "blur"
|
|
|
- }]
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请输入支付金额',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
label: '付款人',
|
|
|
prop: 'payer',
|
|
|
hide: true,
|
|
|
- rules: [{
|
|
|
- required: true,
|
|
|
- message: "请填写付款人",
|
|
|
- trigger: "blur"
|
|
|
- }]
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请填写付款人',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
label: '收款人',
|
|
|
prop: 'payee',
|
|
|
hide: true,
|
|
|
- rules: [{
|
|
|
- required: true,
|
|
|
- message: "请填写收款人",
|
|
|
- trigger: "blur"
|
|
|
- }]
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请填写收款人',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
label: '支付账户',
|
|
|
prop: 'paymentAccount',
|
|
|
hide: true,
|
|
|
- rules: [{
|
|
|
- required: true,
|
|
|
- message: "请填写支付账户",
|
|
|
- trigger: "blur"
|
|
|
- }]
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请填写支付账户',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
label: '支付凭证',
|
|
|
prop: 'fileIds',
|
|
|
hide: true,
|
|
|
- rules: [{
|
|
|
- required: true,
|
|
|
- message: "请上传支付凭证",
|
|
|
- trigger: "blur"
|
|
|
- }]
|
|
|
+ formSlot: true,
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请上传支付凭证',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
label: '付款时间',
|
|
|
prop: 'paymentTime',
|
|
|
- type: 'date',
|
|
|
- rules: [{
|
|
|
- required: true,
|
|
|
- message: "请选择付款时间",
|
|
|
- trigger: "blur"
|
|
|
- }]
|
|
|
+ type: 'datetime',
|
|
|
+ valueFormat: 'YYYY-MM-DD HH:mm:ss',
|
|
|
+ format: 'YYYY-MM-DD HH:mm:ss',
|
|
|
+ rules: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择付款时间',
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
},
|
|
|
{
|
|
|
label: '备注',
|
|
|
@@ -151,19 +191,83 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ created() {
|
|
|
+ this.id = this.$route.query.id
|
|
|
+ },
|
|
|
methods: {
|
|
|
+ onLoad() {
|
|
|
+ this.$api.contract.ledgerList({ contractId: this.id }).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.data = res.data
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
beforeOpen(done, type) {
|
|
|
if (type === 'view') {
|
|
|
+ done()
|
|
|
+ } else if (type === 'edit') {
|
|
|
+ this.show = true
|
|
|
} else {
|
|
|
done()
|
|
|
}
|
|
|
},
|
|
|
+ previewFile(item) {
|
|
|
+ if (api.offices.includes(item.suffix)) {
|
|
|
+ const routeData = this.$router.resolve({
|
|
|
+ path: '/home/file_detail',
|
|
|
+ query: { id: item.fileId }
|
|
|
+ })
|
|
|
+ window.open(routeData.href, '_blank')
|
|
|
+ } else {
|
|
|
+ this.preList.length = 0
|
|
|
+ this.preList.push(item.url)
|
|
|
+ this.showImage = true
|
|
|
+ }
|
|
|
+ },
|
|
|
handleRowSave(row, done, loading) {
|
|
|
- console.log(row)
|
|
|
- this.$api.contract.ledgerAdd(row).then(res => {
|
|
|
-
|
|
|
+ loading()
|
|
|
+ const data = Object.assign(row, { contractId: this.id })
|
|
|
+ this.$confirm(
|
|
|
+ '请检查并确认所填写内容是否正确,系统将会根据填写内容,计算合同付款等相关数据?',
|
|
|
+ {
|
|
|
+ type: 'warning'
|
|
|
+ }
|
|
|
+ ).then(res => {
|
|
|
+ if (res === 'confirm') {
|
|
|
+ this.$api.contract.ledgerAdd(data).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ done(row)
|
|
|
+ this.onLoad()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
})
|
|
|
},
|
|
|
+ rowDel(row, index, done) {
|
|
|
+ this.$confirm('确认删除该内容?', {
|
|
|
+ type: 'warning'
|
|
|
+ }).then(res => {
|
|
|
+ if (res === 'confirm') {
|
|
|
+ this.$api.contract.remove({ ids: row.id }).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ this.onLoad()
|
|
|
+ done(row)
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ console.log(res)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ uploadSucc(res) {
|
|
|
+ const tmp = res.fileList.map(ele => {
|
|
|
+ return ele.response.data
|
|
|
+ })
|
|
|
+ this.fileList = this.fileList.concat(tmp)
|
|
|
+ this.form.fileIds = this.fileList.map(ele => ele.id).join(',')
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|