'123'
This commit is contained in:
commit
bafcf04ee7
|
@ -1,5 +1,13 @@
|
||||||
#for tests only !
|
#for tests only !
|
||||||
|
<<<<<<< HEAD
|
||||||
#Wed Jun 19 10:12:57 CST 2024
|
#Wed Jun 19 10:12:57 CST 2024
|
||||||
|
=======
|
||||||
|
<<<<<<< HEAD
|
||||||
|
#Wed Jun 19 09:11:03 CST 2024
|
||||||
|
=======
|
||||||
|
#Mon Jun 17 15:48:27 CST 2024
|
||||||
|
>>>>>>> 1efe171bc013909adaa8e3300a0b9ce6c2e24d85
|
||||||
|
>>>>>>> d63db1c95090eda2578290808925b20b3608a764
|
||||||
jco.destination.pool_capacity=10
|
jco.destination.pool_capacity=10
|
||||||
jco.client.lang=ZH
|
jco.client.lang=ZH
|
||||||
jco.client.ashost=172.19.0.125
|
jco.client.ashost=172.19.0.125
|
||||||
|
@ -7,5 +15,13 @@ jco.client.saprouter=
|
||||||
jco.client.user=RFC
|
jco.client.user=RFC
|
||||||
jco.client.sysnr=00
|
jco.client.sysnr=00
|
||||||
jco.destination.peak_limit=10
|
jco.destination.peak_limit=10
|
||||||
|
<<<<<<< HEAD
|
||||||
jco.client.passwd=dbTq!8PGYoMxt}M?DFv(:oQQUwH:qM9KKr$k^CHW9U;kE9uK
|
jco.client.passwd=dbTq!8PGYoMxt}M?DFv(:oQQUwH:qM9KKr$k^CHW9U;kE9uK
|
||||||
|
=======
|
||||||
|
<<<<<<< HEAD
|
||||||
|
jco.client.passwd=g}=[!8cY+]^Y:h6_:E9``X=J#eA[=IM/|(0EB`M)]I1i?/qD
|
||||||
|
=======
|
||||||
|
jco.client.passwd=654321
|
||||||
|
>>>>>>> 1efe171bc013909adaa8e3300a0b9ce6c2e24d85
|
||||||
|
>>>>>>> d63db1c95090eda2578290808925b20b3608a764
|
||||||
jco.client.client=800
|
jco.client.client=800
|
||||||
|
|
|
@ -60,6 +60,7 @@
|
||||||
"vue": "2.6.12",
|
"vue": "2.6.12",
|
||||||
"vue-count-to": "1.0.13",
|
"vue-count-to": "1.0.13",
|
||||||
"vue-cropper": "0.5.5",
|
"vue-cropper": "0.5.5",
|
||||||
|
"vue-infinite-scroll": "^2.0.2",
|
||||||
"vue-meta": "2.4.0",
|
"vue-meta": "2.4.0",
|
||||||
"vue-qrcode-reader": "^3.2.0",
|
"vue-qrcode-reader": "^3.2.0",
|
||||||
"vue-router": "3.4.9",
|
"vue-router": "3.4.9",
|
||||||
|
|
|
@ -140,7 +140,7 @@ export const constantRoutes = [
|
||||||
hidden: true,
|
hidden: true,
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: 'edit/:quotId',
|
path: 'edit',
|
||||||
component: () => import('@/views/mobile/quoteMobile/operation/add'),
|
component: () => import('@/views/mobile/quoteMobile/operation/add'),
|
||||||
name: 'quoteMobileEdit',
|
name: 'quoteMobileEdit',
|
||||||
meta: { title: '编辑报价单', activeMenu: '/mobile/quoteMobile/operation' }
|
meta: { title: '编辑报价单', activeMenu: '/mobile/quoteMobile/operation' }
|
||||||
|
|
|
@ -2,44 +2,81 @@
|
||||||
<div>
|
<div>
|
||||||
<div class="search-container">
|
<div class="search-container">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.quotProject"
|
v-model="queryParams.quotCustomerName"
|
||||||
placeholder="请输入项目名称"
|
placeholder="请输入客户名称"
|
||||||
|
class="search-input"
|
||||||
|
clearable>
|
||||||
|
</el-input>
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.quotApprovalStatus"
|
||||||
|
placeholder="请选择审批状态"
|
||||||
class="search-input"
|
class="search-input"
|
||||||
clearable
|
clearable
|
||||||
>
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.quot_approval_status"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.quotProject"
|
||||||
|
placeholder="请输入项目名称"
|
||||||
|
class="search-input"
|
||||||
|
clearable>
|
||||||
<el-button slot="append" icon="el-icon-search" @click="handleSearch">搜索</el-button>
|
<el-button slot="append" icon="el-icon-search" @click="handleSearch">搜索</el-button>
|
||||||
<el-button slot="append" icon="el-icon-plus" @click="handleAdd">新增</el-button>
|
<el-button slot="append" icon="el-icon-plus" @click="handleAdd">新增</el-button>
|
||||||
</el-input>
|
</el-input>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div v-if="quoteList.length === 0">内容为空</div>
|
<div v-if="quoteList.length === 0">内容为空</div>
|
||||||
<div v-for="(quote, index) in quoteList" :key="index">
|
<div v-for="(quote, index) in quoteList" :key="index">
|
||||||
|
<div style="padding: 10px">
|
||||||
<el-card class="box-card">
|
<el-card class="box-card">
|
||||||
<div slot="header" class="clearfix">
|
<div slot="header" class="clearfix">
|
||||||
<span>{{quote.quotCode}}</span>
|
<span>{{quote.quotCode}}</span>
|
||||||
<el-button style="float: right; padding: 3px 0" type="text" @click="handleEdit(quote)">编辑</el-button>
|
<el-button style="float: right; padding: 3px; " type="text" @click="handleEdit(quote, 'edit')">编辑</el-button>
|
||||||
|
<el-button style="float: right; padding: 3px; margin-right: 50px " type="text" @click="handleEdit(quote, 'view')">查看</el-button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="text item">
|
<div class="text item">
|
||||||
<div v-if="false">订单号Id:{{quote.quotId}}</div>
|
<div v-if="false">订单号Id:{{quote.quotId}}</div>
|
||||||
<div>客户:{{quote.quotCustomerName}}</div>
|
<div style="margin-bottom: 5px">客户:{{quote.quotCustomerName}}</div>
|
||||||
<div>项目名称:{{quote.quotProject}}</div>
|
<div style="margin-bottom: 5px">项目名称:{{quote.quotProject}}</div>
|
||||||
<div>提交状态:{{quote.quotApprovalStatus === '0' ? '待提交' : (quote.quotApprovalStatus === '1' ? '协助中' :
|
<div style="margin-bottom: 5px">提交状态:{{quote.quotApprovalStatus === '0' ? '待提交' : (quote.quotApprovalStatus === '1' ? '协助中' :
|
||||||
(quote.quotApprovalStatus === '2' ? '已完成' : '已驳回'))}}</div>
|
(quote.quotApprovalStatus === '2' ? '已完成' : '已驳回'))}}</div>
|
||||||
<div>询价日期:{{quote.quotInquiryDate}}</div>
|
<div style="margin-bottom: 5px">OA审批状态:{{quote.quotOAApprovalStatus === '0' ? '待提交' : (quote.quotOAApprovalStatus === '1' ? '协助中' :
|
||||||
<div>报价日期:{{quote.quotQuotationDate}}</div>
|
(quote.quotOAApprovalStatus === '2' ? '已完成' : '已驳回'))}}</div>
|
||||||
|
<div style="margin-bottom: 5px">询价日期:{{formatDate(quote.quotInquiryDate)}}</div>
|
||||||
|
<div style="margin-bottom: 5px">报价日期:{{formatDate(quote.quotQuotationDate)}}</div>
|
||||||
<div >创建时间:{{quote.createTime}}</div>
|
<div >创建时间:{{quote.createTime}}</div>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="handleSearch"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { getQuoteList} from "@/api/mobile/quoteMobile/quoteMobile";
|
import { getQuoteList} from "@/api/mobile/quoteMobile/quoteMobile";
|
||||||
|
import { listQuot } from "@/api/quot/quot";
|
||||||
export default {
|
export default {
|
||||||
name: "index",
|
name: "index",
|
||||||
|
dicts: ['quot_approval_status'],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
loading: true,
|
||||||
quoteList: [],
|
quoteList: [],
|
||||||
|
total: 0,
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
|
@ -50,30 +87,58 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
noMore () {
|
||||||
|
return this.quoteList.length >= this.total
|
||||||
|
},
|
||||||
|
disabled () {
|
||||||
|
return this.loading || this.noMore
|
||||||
|
}
|
||||||
|
},
|
||||||
created() {
|
created() {
|
||||||
this.queryQuoteList();
|
this.handleSearch();
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
queryQuoteList() {
|
|
||||||
getQuoteList(this.queryParams).then(response => {
|
|
||||||
this.quoteList = response.data
|
|
||||||
console.log(this.quoteList);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
handleSearch() {
|
handleSearch() {
|
||||||
console.log(this.queryParams)
|
try {
|
||||||
getQuoteList(this.queryParams).then(response => {
|
listQuot(this.queryParams).then(response => {
|
||||||
this.quoteList = response.data
|
this.quoteList = response.rows;
|
||||||
console.log(this.quoteList);
|
this.queryParams.pageNum++;
|
||||||
|
this.total = response.total;
|
||||||
});
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.$router.push('/quoteMobile/add');
|
this.$router.push('/quoteMobile/add');
|
||||||
},
|
},
|
||||||
handleEdit(quote) {
|
handleEdit(quote, name) {
|
||||||
const quotId = quote.quotId
|
const info = { quotId: quote.quotId, operate: name };
|
||||||
this.$router.push("/quoteMobile/edit/edit/" + quotId);
|
console.log(info);
|
||||||
|
this.$router.push({ path: '/quoteMobile/edit/edit', query: info });
|
||||||
console.log(quote)
|
console.log(quote)
|
||||||
|
},
|
||||||
|
|
||||||
|
formatDate(dateString) {
|
||||||
|
if (dateString !== undefined && dateString !== null) {
|
||||||
|
const date = new Date(dateString);
|
||||||
|
return date.toLocaleString('zh-CN', {
|
||||||
|
year: 'numeric',
|
||||||
|
month: '2-digit',
|
||||||
|
day: '2-digit',
|
||||||
|
hour: '2-digit',
|
||||||
|
minute: '2-digit',
|
||||||
|
second: '2-digit',
|
||||||
|
hour12: false,
|
||||||
|
timeZone: 'Asia/Shanghai'
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -82,7 +147,7 @@ export default {
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.search-container {
|
.search-container {
|
||||||
display: flex;
|
padding: 5px 10px 0px 10px;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
|
@ -94,5 +159,18 @@ export default {
|
||||||
border-radius: 25px;
|
border-radius: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.box-card {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.loading,
|
||||||
|
.end-of-data {
|
||||||
|
text-align: center;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.quote-list {
|
||||||
|
overflow-y: auto;
|
||||||
|
height: 100vh; /* 设置高度以触发滚动 */
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="地址" prop="quotAddress">
|
<el-form-item label="地址" prop="quotAddress">
|
||||||
<el-input v-model="formData.quotAddress" placeholder="请输入地址" clearable>
|
<el-input :readonly="isReadOnly" v-model="formData.quotAddress" placeholder="请输入地址" clearable>
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="审核人" prop="quotCheckUserNickname">
|
<el-form-item label="审核人" prop="quotCheckUserNickname">
|
||||||
|
@ -25,13 +25,21 @@
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="提交状态" prop="quotApprovalStatus">
|
<el-form-item label="提交状态" prop="quotApprovalStatus">
|
||||||
<el-input readonly v-model="formData.quotApprovalStatus" placeholder="保存后显示" clearable
|
<el-input readonly
|
||||||
|
:value="formData.quotApprovalStatus === undefined ? '' :(formData.quotApprovalStatus === '0' ? '待提交' :
|
||||||
|
(formData.quotApprovalStatus === '1' ? '协助中' :
|
||||||
|
(formData.quotApprovalStatus === '2' ? '已完成' : '已驳回')))"
|
||||||
|
placeholder="保存后显示" clearable
|
||||||
></el-input>
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="项目名称" prop="quotProject">
|
<el-form-item label="项目名称" prop="quotProject">
|
||||||
<el-input v-model="formData.quotProject" placeholder="请输入项目名称" clearable >
|
<el-input v-model="formData.quotProject" placeholder="请输入项目名称" clearable >
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="OA审批备注" prop="quotOAApprovalStatusRemark">
|
||||||
|
<el-input readonly v-model="formData.quotOAApprovalStatusRemark" placeholder="OA审批备注" clearable >
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="报价要求" prop="quotQuotationRequire">
|
<el-form-item label="报价要求" prop="quotQuotationRequire">
|
||||||
<el-input v-model="formData.quotQuotationRequire" placeholder="请输入报价要求" clearable
|
<el-input v-model="formData.quotQuotationRequire" placeholder="请输入报价要求" clearable
|
||||||
></el-input>
|
></el-input>
|
||||||
|
@ -42,97 +50,98 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
|
||||||
<el-divider content-position="left" class="customer_divider_text">询价附件(先保存)</el-divider>
|
<el-divider content-position="left" class="customer_divider_text">清单附件(先保存再上传且必须是EXCEL文件)</el-divider>
|
||||||
<div v-hasPermi="['quot:quot:quotXjFile']">
|
<div v-hasPermi="['quot:quot:quotXjFile']">
|
||||||
<el-upload class="upload-demo"
|
<el-upload class="upload-demo"
|
||||||
ref="upload"
|
ref="quotXjFileUpload"
|
||||||
name="quotFile"
|
name="quotFile"
|
||||||
:action="uploadUrl"
|
:action="uploadUrl"
|
||||||
:headers="headers"
|
:headers="headers"
|
||||||
:data="{ relation_id: this.formData.quotId,file_type: 'quotXjFile' }"
|
:data="{ relation_id: this.formData.quotId,file_type: 'quotXjFile' }"
|
||||||
|
:before-upload="beforeAvatarUploadQuotXjFile"
|
||||||
:on-success="handleAvatarSuccess"
|
:on-success="handleAvatarSuccess"
|
||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
:limit="1"
|
:limit="1"
|
||||||
v-if="this.formData.quotApprovalStatus == 0">
|
v-if="this.formData.quotApprovalStatus == '0' && !isReadOnly">
|
||||||
<el-button size="small" type="primary" @click="uploadFile('quotXjFile')">上传文件</el-button>
|
<el-button size="small" type="primary" @click="uploadFile('quotXjFile')">上传文件</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
<el-table class="down" :data="quotXjFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
<el-table class="down" v-loading="quotXjFileLoading" :data="quotXjFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||||
<el-table-column prop="fileName" label="文件名称" ></el-table-column>
|
<el-table-column prop="fileName" label="文件名称" ></el-table-column>
|
||||||
<el-table-column width="150px" label="操作">
|
<el-table-column width="150px" label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button :key="Math.random()" size="small" type="text">
|
<el-button :key="Math.random()" size="small" type="text">
|
||||||
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button :key="Math.random()" size="small" type="text" v-if="formData.quotApprovalStatus == 0">
|
<el-button :key="Math.random()" size="small" type="text" v-if="formData.quotApprovalStatus == '0' && !isReadOnly">
|
||||||
<a @click="deleteFile(scope.row.fileId,'quotXjFile')">删除</a>
|
<a @click="deleteFile(scope.row.fileId,'quotXjFile')">删除</a>
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<el-divider content-position="left" class="customer_divider_text">技术规范要求(询价附件)</el-divider>
|
<el-divider content-position="left" class="customer_divider_text">技术附件(先保存再上传,如包含清单附件则不受理)</el-divider>
|
||||||
<div v-hasPermi="['quot:quot:quotXjFile']">
|
<div v-hasPermi="['quot:quot:quotJsgfFile']">
|
||||||
<el-upload class="upload-demo"
|
<el-upload class="upload-demo"
|
||||||
ref="upload"
|
ref="quotJsgfFileUpload"
|
||||||
name="quotFile"
|
name="quotFile"
|
||||||
:action="uploadUrl"
|
:action="uploadUrl"
|
||||||
:headers="headers"
|
:headers="headers"
|
||||||
:data="{ relation_id: this.formData.quotId,file_type: 'quotXjFile' }"
|
:data="{ relation_id: this.formData.quotId,file_type: 'quotJsgfFile' }"
|
||||||
|
:before-upload="beforeAvatarUploadQuotJsgfFile"
|
||||||
:on-success="handleAvatarSuccess"
|
:on-success="handleAvatarSuccess"
|
||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
:limit="1"
|
:limit="1"
|
||||||
v-if="this.formData.quotApprovalStatus === '0'">
|
v-if="this.formData.quotApprovalStatus == '0' && !isReadOnly">
|
||||||
<el-button size="small" type="primary" @click="uploadFile('quotXjFile')">上传文件</el-button>
|
<el-button size="small" type="primary" @click="uploadFile('quotJsgfFile')">上传文件</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
<el-table class="down" :data="quotXjFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
<el-table class="down" v-loading="quotJsgfFileLoading" :data="quotJsgfFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||||
<el-table-column prop="fileName" label="文件名称" ></el-table-column>
|
<el-table-column prop="fileName" label="文件名称" ></el-table-column>
|
||||||
<el-table-column width="150px" label="操作">
|
<el-table-column width="150px" label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button :key="Math.random()" size="small" type="text">
|
<el-button :key="Math.random()" size="small" type="text">
|
||||||
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button :key="Math.random()" size="small" type="text" v-if="formData.quotApprovalStatus == '0'">
|
<el-button :key="Math.random()" size="small" type="text" v-if="formData.quotApprovalStatus == '0' && !isReadOnly">
|
||||||
<a @click="deleteFile(scope.row.fileId,'quotXjFile')">删除</a>
|
<a @click="deleteFile(scope.row.fileId,'quotJsgfFile')">删除</a>
|
||||||
</el-button>
|
</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<el-divider content-position="left" class="customer_divider_text">反馈附件</el-divider>
|
<el-divider content-position="left" class="customer_divider_text">反馈附件</el-divider>
|
||||||
<div v-hasPermi="['quot:quot:quotXjFile']">
|
<div v-hasPermi="['quot:quot:quotFkFile']" >
|
||||||
<el-upload class="upload-demo"
|
<el-upload class="upload-demo"
|
||||||
ref="upload"
|
ref="quotFkFileUpload"
|
||||||
name="quotFile"
|
name="quotFile"
|
||||||
:action="uploadUrl"
|
:action="uploadUrl"
|
||||||
:headers="headers"
|
:headers="headers"
|
||||||
:data="{ relation_id: this.formData.quotId,file_type: 'quotXjFile' }"
|
:data="{ relation_id: this.formData.quotId,file_type: 'quotFkFile' }"
|
||||||
|
:before-upload="beforeAvatarUploadQuotFkFile"
|
||||||
:on-success="handleAvatarSuccess"
|
:on-success="handleAvatarSuccess"
|
||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
:limit="1"
|
:limit="1"
|
||||||
v-if="this.formData.quotApprovalStatus == '0'">
|
v-if="this.formData.quotApprovalStatus == '1'">
|
||||||
<el-button size="small" type="primary" @click="uploadFile('quotXjFile')">上传文件</el-button>
|
<el-button size="small" type="primary" @click="uploadFile('quotFkFile')">上传文件</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</div>
|
</div>
|
||||||
<el-table class="down" :data="quotXjFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
<el-table class="down" v-loading="quotFkFileLoading" :data="quotFkFileList" border stripe style="width: 100%;margin-top: 10px;" height="200px">
|
||||||
<el-table-column prop="fileName" label="文件名称"></el-table-column>
|
<el-table-column prop="fileName" label="文件名称"></el-table-column>
|
||||||
<el-table-column width="150px" label="操作">
|
<el-table-column width="150px" label="操作">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-button :key="Math.random()" size="small" type="text">
|
<el-button size="small" type="text">
|
||||||
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
<a @click="downloadFile(scope.row.fileUrl)">下载</a>
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button :key="Math.random()" size="small" type="text" v-if="formData.quotApprovalStatus == '0'">
|
<el-button size="small" type="text" @click="deleteFile(scope.row.fileId,'quotFkFile')" v-if="formData.quotApprovalStatus == '1'">删除</el-button>
|
||||||
<a @click="deleteFile(scope.row.fileId,'quotXjFile')">删除</a>
|
|
||||||
</el-button>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<el-form-item style="margin-top: 15px">
|
<el-form-item style="margin-top: 15px">
|
||||||
<el-button @click="saveForm">保存</el-button>
|
<el-button v-if="!isReadOnly" @click="saveForm">保存</el-button>
|
||||||
<el-button style="margin: 0px 15px 0px 20px" type="primary" @click="submitForm">提交</el-button>
|
<el-button v-if="!isReadOnly" style="margin: 0px 15px 0px 20px" type="primary" @click="commitForm">提交</el-button>
|
||||||
<el-button @click="resetForm">重置</el-button>
|
<el-button @click="closeForm">取消</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<CustomerSelect :width="100 + '%'" ref="customerSelect" :open="customerOpen" @submit="submitCustomer" @cancel="customerOpen=false"></CustomerSelect>
|
<CustomerSelect :width="100 + '%'" ref="customerSelect" :open="customerOpen" @submit="submitCustomer" @cancel="customerOpen=false"></CustomerSelect>
|
||||||
|
@ -155,6 +164,7 @@ import PeopleSelect from "@/views/components/Tools/PeopleSelect/index.vue";
|
||||||
|
|
||||||
/** 弹窗放大、拖拽 */
|
/** 弹窗放大、拖拽 */
|
||||||
import elDragDialog from "@/directive/dialog/dragDialog";
|
import elDragDialog from "@/directive/dialog/dragDialog";
|
||||||
|
import router from '@/router';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
@ -164,8 +174,7 @@ export default {
|
||||||
props: [],
|
props: [],
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 表单参数
|
isReadOnly: false,
|
||||||
form: {},
|
|
||||||
// 报价单-询价附件列表数据
|
// 报价单-询价附件列表数据
|
||||||
quotXjFileLoading: false,
|
quotXjFileLoading: false,
|
||||||
quotXjFileList: [],
|
quotXjFileList: [],
|
||||||
|
@ -198,15 +207,8 @@ export default {
|
||||||
quotPhone: '',
|
quotPhone: '',
|
||||||
quotQuotationFrom: '',
|
quotQuotationFrom: '',
|
||||||
quotPrintUserName: '',
|
quotPrintUserName: '',
|
||||||
field115: null,
|
|
||||||
field116: null,
|
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
quotAddress: [{
|
|
||||||
required: true,
|
|
||||||
message: '请输入地址',
|
|
||||||
trigger: 'blur'
|
|
||||||
}],
|
|
||||||
quotProject: [{
|
quotProject: [{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入项目名称',
|
message: '请输入项目名称',
|
||||||
|
@ -228,49 +230,27 @@ export default {
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}],
|
}],
|
||||||
},
|
},
|
||||||
field115Action: 'https://jsonplaceholder.typicode.com/posts/',
|
|
||||||
field115fileList: [],
|
|
||||||
field116Action: 'https://jsonplaceholder.typicode.com/posts/',
|
|
||||||
field116fileList: [],
|
|
||||||
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {},
|
computed: {},
|
||||||
watch: {},
|
watch: {},
|
||||||
created() {
|
created() {
|
||||||
const quotId = this.$route.params && this.$route.params.quotId;
|
const queryParams = this.$route.query;
|
||||||
|
console.log(queryParams);
|
||||||
|
const quotId = queryParams.quotId;
|
||||||
|
const operate = queryParams.operate;
|
||||||
|
|
||||||
if (quotId !== undefined && quotId !== null) {
|
if (quotId !== undefined && quotId !== null) {
|
||||||
const row = {'quotId':quotId}
|
const row = {'quotId':quotId}
|
||||||
this.handleUpdate(row);
|
this.handleUpdate(row);
|
||||||
}
|
}
|
||||||
|
if (operate === 'view') {
|
||||||
|
this.isReadOnly = true;
|
||||||
|
}
|
||||||
console.log(quotId);
|
console.log(quotId);
|
||||||
},
|
},
|
||||||
mounted() {},
|
mounted() {},
|
||||||
methods: {
|
methods: {
|
||||||
submitForm() {
|
|
||||||
this.$refs['elForm'].validate(valid => {
|
|
||||||
if (!valid) return
|
|
||||||
// TODO 提交表单
|
|
||||||
})
|
|
||||||
},
|
|
||||||
resetForm() {
|
|
||||||
this.$refs['elForm'].resetFields()
|
|
||||||
},
|
|
||||||
field115BeforeUpload(file) {
|
|
||||||
let isRightSize = file.size / 1024 / 1024 < 2
|
|
||||||
if (!isRightSize) {
|
|
||||||
this.$message.error('文件大小超过 2MB')
|
|
||||||
}
|
|
||||||
return isRightSize
|
|
||||||
},
|
|
||||||
field116BeforeUpload(file) {
|
|
||||||
let isRightSize = file.size / 1024 / 1024 < 100
|
|
||||||
if (!isRightSize) {
|
|
||||||
this.$message.error('文件大小超过 100MB')
|
|
||||||
}
|
|
||||||
return isRightSize
|
|
||||||
},
|
|
||||||
//打开客户选择弹窗
|
//打开客户选择弹窗
|
||||||
openCustomer(){
|
openCustomer(){
|
||||||
this.customerOpen=true;
|
this.customerOpen=true;
|
||||||
|
@ -295,7 +275,7 @@ export default {
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.activeName = "quotInfo";
|
this.activeName = "quotInfo";
|
||||||
|
|
||||||
const quotJsxzGroup = this.form.quotJsxzGroupValues;
|
const quotJsxzGroup = this.formData.quotJsxzGroupValues;
|
||||||
if(quotJsxzGroup){
|
if(quotJsxzGroup){
|
||||||
if(quotJsxzGroup.indexOf("TL")!==-1){
|
if(quotJsxzGroup.indexOf("TL")!==-1){
|
||||||
this.showTl = true;
|
this.showTl = true;
|
||||||
|
@ -339,21 +319,40 @@ export default {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/** 提交报价组按钮 */
|
||||||
|
commitForm() {
|
||||||
|
this.$refs["elForm"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if(this.quotXjFileList == 0){
|
||||||
|
this.$message.warning("无报价产品 或 未提交询价附件!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
commitQuot(this.formData).then(response => {
|
||||||
|
this.$modal.msgSuccess("提交成功");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.$store.dispatch('tagsView/delView',this.$route)
|
||||||
|
this.$router.go(-1)
|
||||||
|
},
|
||||||
|
closeForm() {
|
||||||
|
this.$store.dispatch('tagsView/delView',this.$route)
|
||||||
|
this.$router.go(-1)
|
||||||
|
},
|
||||||
/*********************************附件列表数据展示、上传*****************************************/
|
/*********************************附件列表数据展示、上传*****************************************/
|
||||||
//获取报价单-询价附件列表
|
//获取报价单-询价附件列表
|
||||||
getQuotXjFileList(){
|
getQuotXjFileList(){
|
||||||
const param = {relationId:this.form.quotId,fileType:'quotXjFile'}
|
const param = {relationId:this.formData.quotId,fileType:'quotXjFile'}
|
||||||
quotFileList(param).then(response => {
|
quotFileList(param).then(response => {
|
||||||
this.quotXjFileList = response.rows;
|
this.quotXjFileList = response.rows;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
//获取报价单-反馈附件列表
|
//获取报价单-反馈附件列表
|
||||||
getQuotFkFileList(){
|
getQuotFkFileList(){
|
||||||
const param = {relationId:this.form.quotId,fileType:'quotFkFile'}
|
const param = {relationId:this.formData.quotId,fileType:'quotFkFile'}
|
||||||
|
|
||||||
//协助中状态不显示反馈附件
|
//协助中状态不显示反馈附件
|
||||||
if(this.form.quotApprovalStatus!='1' && checkRole(['SALES_MAN'])){
|
if(this.formData.quotApprovalStatus!='1' && checkRole(['SALES_MAN'])){
|
||||||
quotFileList(param).then(response => {
|
quotFileList(param).then(response => {
|
||||||
this.quotFkFileList = response.rows;
|
this.quotFkFileList = response.rows;
|
||||||
});
|
});
|
||||||
|
@ -365,15 +364,16 @@ export default {
|
||||||
},
|
},
|
||||||
//获取报价单-技术规范附件列表
|
//获取报价单-技术规范附件列表
|
||||||
getQuotJsgfFileList(){
|
getQuotJsgfFileList(){
|
||||||
console.log(this.form.quotId)
|
console.log(this.formData.quotId)
|
||||||
const param = {relationId:this.form.quotId,fileType:'quotJsgfFile'}
|
const param = {relationId:this.formData.quotId,fileType:'quotJsgfFile'}
|
||||||
quotFileList(param).then(response => {
|
quotFileList(param).then(response => {
|
||||||
this.quotJsgfFileList = response.rows;
|
this.quotJsgfFileList = response.rows;
|
||||||
|
console.log(this.quotJsgfFileList)
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
//获取报价单-技术确认-反馈附件上传
|
//获取报价单-技术确认-反馈附件上传
|
||||||
getQuotJsqrFileList(fileType){
|
getQuotJsqrFileList(fileType){
|
||||||
const param = {relationId:this.form.quotJsxzConfirmId,fileType:fileType}
|
const param = {relationId:this.formData.quotJsxzConfirmId,fileType:fileType}
|
||||||
quotFileList(param).then(response => {
|
quotFileList(param).then(response => {
|
||||||
this.quotJsqrFileList = response.rows;
|
this.quotJsqrFileList = response.rows;
|
||||||
if('quotJsqrTlFkFile' == fileType){
|
if('quotJsqrTlFkFile' == fileType){
|
||||||
|
@ -389,7 +389,7 @@ export default {
|
||||||
},
|
},
|
||||||
//获取报价单-核价附件列表
|
//获取报价单-核价附件列表
|
||||||
getQuotHjFileList(){
|
getQuotHjFileList(){
|
||||||
const param = {relationId:this.form.quotHjId,fileType:'quotHjFile'}
|
const param = {relationId:this.formData.quotHjId,fileType:'quotHjFile'}
|
||||||
quotFileList(param).then(response => {
|
quotFileList(param).then(response => {
|
||||||
this.quotHjFileList = response.rows;
|
this.quotHjFileList = response.rows;
|
||||||
});
|
});
|
||||||
|
@ -401,19 +401,19 @@ export default {
|
||||||
if("quotJsqrTl"==group){
|
if("quotJsqrTl"==group){
|
||||||
this.addFileTitle = '特缆反馈附件'
|
this.addFileTitle = '特缆反馈附件'
|
||||||
this.fileType = 'quotJsqrTlFkFile';
|
this.fileType = 'quotJsqrTlFkFile';
|
||||||
this.uploadDis = (this.form.quotJsqrTlOperateState == 0 ? true : false);
|
this.uploadDis = (this.formData.quotJsqrTlOperateState == 0 ? true : false);
|
||||||
}else if('quotJsqrDy'==group){
|
}else if('quotJsqrDy'==group){
|
||||||
this.addFileTitle = '低压反馈附件'
|
this.addFileTitle = '低压反馈附件'
|
||||||
this.fileType = 'quotJsqrDyFkFile';
|
this.fileType = 'quotJsqrDyFkFile';
|
||||||
this.uploadDis = (this.form.quotJsqrDyOperateState == 0 ? true : false);
|
this.uploadDis = (this.formData.quotJsqrDyOperateState == 0 ? true : false);
|
||||||
}else if('quotJsqrZy'==group){
|
}else if('quotJsqrZy'==group){
|
||||||
this.addFileTitle = '中压反馈附件'
|
this.addFileTitle = '中压反馈附件'
|
||||||
this.fileType = 'quotJsqrZyFkFile';
|
this.fileType = 'quotJsqrZyFkFile';
|
||||||
this.uploadDis = (this.form.quotJsqrZyOperateState == 0 ? true : false);
|
this.uploadDis = (this.formData.quotJsqrZyOperateState == 0 ? true : false);
|
||||||
}else if('quotJsqrQt'==group){
|
}else if('quotJsqrQt'==group){
|
||||||
this.addFileTitle = '其他反馈附件'
|
this.addFileTitle = '其他反馈附件'
|
||||||
this.fileType = 'quotJsqrQtFkFile';
|
this.fileType = 'quotJsqrQtFkFile';
|
||||||
this.uploadDis = (this.form.quotJsqrQtOperateState == 0 ? true : false);
|
this.uploadDis = (this.formData.quotJsqrQtOperateState == 0 ? true : false);
|
||||||
}
|
}
|
||||||
// 获取反馈附件
|
// 获取反馈附件
|
||||||
this.getQuotJsqrFileList(this.fileType);
|
this.getQuotJsqrFileList(this.fileType);
|
||||||
|
|
Loading…
Reference in New Issue