From 6bf3dda64be0aeef5c999818075facb41988f7bd Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期一, 09 九月 2024 16:05:52 +0800
Subject: [PATCH] 新增订单-生成报告功能
---
src/components/view/b1-report-preparation.vue | 19 ++-
src/components/do/b1-report-preparation/order.vue | 230 ++++++++++++++++++++++++++++++++++++++++++++++
src/assets/api/controller.js | 1
3 files changed, 245 insertions(+), 5 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 0c07042..752ca22 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -271,6 +271,7 @@
ratifyReport: "/insReport/ratifyReport", //鎶ュ憡鎵瑰噯
downAll: "/insReport/downAll", //鎶ュ憡鎵归噺涓嬭浇
upAll: "/insReport/upAll", //鎶ュ憡鎵归噺涓婁紶
+ isReport: "/insReport/isReport", //鏄惁鐢熸垚鎬绘姤鍛�
}
const warehouse = {
diff --git a/src/components/do/b1-report-preparation/order.vue b/src/components/do/b1-report-preparation/order.vue
new file mode 100644
index 0000000..5d001d0
--- /dev/null
+++ b/src/components/do/b1-report-preparation/order.vue
@@ -0,0 +1,230 @@
+<template>
+ <div style="height: calc(100vh - 280px);">
+ <div class="search">
+ <div class="search_thing">
+ <div class="search_label">濮旀墭缂栧彿锛�</div>
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="componentData.entity.entrustCode" @keyup.enter.native="refreshTable()"></el-input></div>
+ </div>
+ <div class="search_thing">
+ <div class="search_label">鏍峰搧鍚嶇О锛�</div>
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="componentData.entity.sampleName" @keyup.enter.native="refreshTable()"></el-input></div>
+ </div>
+ <div class="search_thing">
+ <div class="search_label">鏍峰搧鍨嬪彿锛�</div>
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="componentData.entity.sampleModel" @keyup.enter.native="refreshTable()"></el-input></div>
+ </div>
+ <div class="search_thing">
+ <div class="search_label">鏍峰搧缂栧彿锛�</div>
+ <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
+ v-model="componentData.entity.sampleCode" @keyup.enter.native="refreshTable()"></el-input></div>
+ </div>
+ <div class="search_thing" style="margin-left: 20px;">
+ <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+ <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
+ </div>
+ </div>
+ <div class="table">
+ <ValueTable ref="ValueTable"
+ :url="$api.insOrder.selectInsOrderParameter" :componentData="componentData"
+ :upIndex="upIndex" />
+ </div>
+ </div>
+</template>
+
+<script>
+import ValueTable from '../../tool/value-table.vue'
+export default {
+ components: {
+ ValueTable,
+ },
+ data() {
+ return {
+ componentData: {
+ entity: {
+ entrustCode: null,
+ sample: null,
+ sampleName: null,
+ sampleModel: null,
+ sampleCode: null,
+ outEntrustCode: null,
+ state: 1,
+ name:null,
+ engineering:null,
+ production:null,
+ },
+ isIndex: true,
+ showSelect: false,
+ select: false,
+ // selectMethod:'selectMethod',
+ do: [{
+ id: 'handleCreateReport',
+ font: '鐢熸垚鎶ュ憡',
+ type: 'text',
+ method: 'handleCreateReport',
+ disabFun: (row, index) => {
+ return row.insState == 5
+ }
+ }],
+ tagField: {
+ type: {
+ select: [{
+ value: 0,
+ type: 'success',
+ label: '鏅��'
+ }, {
+ value: 1,
+ type: 'warning',
+ label: '浼樺厛'
+ }, {
+ value: 2,
+ type: 'danger',
+ label: '绱ф��'
+ }]
+ },
+ createUser: {
+ select: []
+ },
+ orderType: {
+ select: []
+ },
+ processing: {
+ select: [{
+ value: 1,
+ label: '瀹為獙瀹ゅ鐞�'
+ },{
+ value: 0,
+ label: '濮旀墭鍗曚綅鍙栧洖'
+ }]
+ },
+ isLeave: {
+ select: [{
+ value: 1,
+ label: '鐣欐牱'
+ },{
+ value: 0,
+ label: '涓嶇暀鏍�'
+ }]
+ },
+ send: {
+ select: [{
+ value: 1,
+ label: '鑷彇'
+ },{
+ value: 0,
+ label: '鍏朵粬'
+ }]
+ }
+ },
+ selectField: {},
+ requiredAdd: [],
+ requiredUp: [],
+ needSort: ['createTime', 'sendTime', 'type', 'appointed']
+ },
+ upIndex: 0,
+ entityCopy: {}
+ }
+ },
+ mounted() {
+ this.entityCopy = this.HaveJson(this.componentData.entity)
+ this.getPower()
+ },
+ methods:{
+ // 鏉冮檺鍒嗛厤
+ getPower(radio) {
+ let power = JSON.parse(sessionStorage.getItem('power'))
+ let isReport = false
+ for (var i = 0; i < power.length; i++) {
+ if (power[i].menuMethod == 'isReport') {
+ isReport = true
+ }
+ }
+ if (!isReport) {
+ this.componentData.do.splice(0, 1)
+ }
+ },
+ refreshTable(e) {
+ this.$refs['ValueTable'].selectList(e)
+ },
+ refresh() {
+ this.componentData.entity = this.HaveJson(this.entityCopy)
+ this.upIndex++
+ this.refreshTable()
+ },
+ handleCreateReport(row){
+ this.$confirm(`鏄惁鐢熸垚姝ゅ鎵樺崟 ${row.entrustCode} 鐨勬�绘姤鍛�?`, "鎻愮ず", {
+ confirmButtonText: "鐢熸垚",
+ cancelButtonText: "涓嶇敓鎴�",
+ type: "success",
+ distinguishCancelAndClose: true,
+ }).then(() => {
+ this.$axios.post(this.$api.insReport.isReport, {
+ id:row.id,
+ state:1
+ }).then(res => {
+ if (res.code === 201) {
+ return
+ }
+ this.$message.success("宸茬敓鎴�")
+ this.refreshTable()
+ }).catch(err => {
+
+ console.log(err)
+ })
+ }).catch((e) => {
+ console.log(e)
+ if(e=='cancel'){
+ this.$axios.post(this.$api.insReport.isReport, {
+ id:row.id,
+ state:0
+ }).then(res => {
+ if (res.code === 201) {
+ return
+ }
+ this.refreshTable()
+ this.$message.success("宸插彇娑堢敓鎴�")
+ }).catch(err => {
+ console.log(err)
+ })
+ }
+ })
+ }
+ }
+}
+</script>
+
+<style scoped>
+.search {
+ background-color: #fff;
+ height: 80px;
+ display: flex;
+ align-items: center;
+ overflow: hidden;
+ }
+
+ .search_thing {
+ display: flex;
+ align-items: center;
+ height: 50px;
+ width: 230px;
+ }
+
+ .search_label {
+ width: 90px;
+ font-size: 14px;
+ text-align: right;
+ }
+
+ .search_input {
+ width: calc(100% - 90px);
+ }
+
+ .table {
+ margin-top: 10px;
+ background-color: #fff;
+ height: 100%;
+ padding: 20px;
+ }
+</style>
diff --git a/src/components/view/b1-report-preparation.vue b/src/components/view/b1-report-preparation.vue
index a99b5f8..9b5d017 100644
--- a/src/components/view/b1-report-preparation.vue
+++ b/src/components/view/b1-report-preparation.vue
@@ -87,10 +87,15 @@
<div style="width: 100%;height: 100%;">
<div>
<el-row class="title">
- <el-col :span="12" style="padding-left: 20px;text-align: left;">鎶ュ憡缂栧埗</el-col>
+ <el-col :span="12" style="text-align: left;">
+ <el-radio-group v-model="radio"size="medium" fill="#3A7BFA">
+ <el-radio-button label="0">鎶ュ憡缂栧埗</el-radio-button>
+ <el-radio-button label="1">璁㈠崟</el-radio-button>
+ </el-radio-group>
+ </el-col>
</el-row>
</div>
- <div class="search" style="position: relative;">
+ <div class="search" style="position: relative;" v-if="radio==0">
<div class="search_thing">
<div class="search_label">鎶ュ憡缂栧彿锛�</div>
<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
@@ -124,13 +129,13 @@
</el-upload>
</div>
</div>
- <!-- <input id="input" type="file" accept=".doc,.docx"></input> -->
- <div class="table">
+ <div class="table" v-if="radio==0">
<ValueTable ref="ValueTable" :url="$api.insReport.pageInsReport"
:isColumnWidth="true"
:componentData="componentData"
:key="upIndex" />
</div>
+ <Order v-if="radio==1"/>
</div>
<el-dialog title="鍦ㄧ嚎缂栧埗" :visible.sync="claimVisible" width="22cm" :modal-append-to-body="false"
:fullscreen="fullscreen">
@@ -213,13 +218,16 @@
<script>
import ValueTable from '../tool/value-table.vue'
import onlyoffice from '../tool/onlyoffice.vue'
+ import Order from '../do/b1-report-preparation/order.vue'
export default {
components: {
ValueTable,
- onlyoffice
+ onlyoffice,
+ Order
},
data() {
return {
+ radio:0,
componentData: {
entity: {
entrustCode: null,
@@ -486,6 +494,7 @@
refresh() {
this.componentData.entity = this.HaveJson(this.entityCopy)
this.upIndex++
+ this.$refs['ValueTable'].selectList(e)
},
async handleWeave(row) {
let fileName = (row.urlS===null||row.urlS==='')?row.url:row.urlS
--
Gitblit v1.9.3