¶Ô±ÈÐÂÎļþ |
| | |
| | | <style scoped> |
| | | .sale .title .el-button { |
| | | height: 32px; |
| | | border: 1px solid rgba(190, 190, 190, 0.44); |
| | | box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41); |
| | | padding: 0 12px; |
| | | } |
| | | |
| | | .sale .title { |
| | | margin-bottom: 10px; |
| | | padding: 0 20px; |
| | | } |
| | | |
| | | .sale .title * { |
| | | font-size: 16px; |
| | | } |
| | | |
| | | .choose { |
| | | padding: 21px 24px; |
| | | display: flex; |
| | | align-items: center; |
| | | background-color: #fff; |
| | | border-bottom: 3px solid rgb(245, 247, 251); |
| | | } |
| | | |
| | | .choose * { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .choose .el-button { |
| | | height: 32px; |
| | | border: 1px solid rgba(190, 190, 190, 0.44); |
| | | box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41); |
| | | padding: 0 12px; |
| | | } |
| | | |
| | | .thing { |
| | | width: calc(100% - 44px); |
| | | height: calc(100% - 42px - 82px - 66px); |
| | | background-color: #fff; |
| | | overflow: auto; |
| | | padding: 33px 22px; |
| | | } |
| | | |
| | | .table_do { |
| | | color: #004ea0; |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .select-model .body { |
| | | padding: 0 20px; |
| | | color: #333; |
| | | max-height: 70vh; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .select-model .head { |
| | | font-size: 16px; |
| | | color: #333; |
| | | line-height: 40px; |
| | | } |
| | | |
| | | .select-model .content * { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .select-model .content .value { |
| | | font-size: 14px; |
| | | padding: 0 15px; |
| | | background-color: rgba(0, 0, 0, 0.05); |
| | | border: 1px solid rgba(0, 0, 0, 0.1); |
| | | border-radius: 4px; |
| | | } |
| | | </style> |
| | | <style> |
| | | .sale .title .el-button * { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .sale .title .el-button--default { |
| | | color: #004EA2; |
| | | } |
| | | |
| | | .sale .thing * { |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .sale .has-gutter .el-table__cell { |
| | | background-color: #F0F1F5 !important; |
| | | color: #333; |
| | | } |
| | | |
| | | .sale .has-gutter .el-table__cell .cell { |
| | | font-size: 16px; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | .sale .cell { |
| | | color: #333; |
| | | padding-left: 17px !important; |
| | | } |
| | | |
| | | .sale .el-table__body-wrapper { |
| | | height: 100%; |
| | | } |
| | | |
| | | .sale .el-table__body { |
| | | height: 100%; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | | <div class="sale"> |
| | | <div class="title"> |
| | | <el-row> |
| | | <el-col :span="12" style="line-height: 32px;">éå®ç®¡ç</el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <el-button type="primary" icon="el-icon-plus" @click="addDia= true">æ°å¢</el-button> |
| | | <el-button icon="el-icon-edit-outline">ä¿®æ¹</el-button> |
| | | <el-button icon="el-icon-delete">å é¤</el-button> |
| | | <el-button icon="el-icon-download">导åº</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="choose"> |
| | | <span>订åç¼å·ï¼</span> |
| | | <el-input v-model="search.code" size="small" placeholder="请è¾å
¥" style="width: 224px;margin-right: 30px;" |
| | | clearable></el-input> |
| | | <span>产ååç§°ï¼</span> |
| | | <el-input v-model="search.name" size="small" placeholder="请è¾å
¥" style="width: 224px;margin-right: 30px;" |
| | | clearable></el-input> |
| | | <span>ç¶æï¼</span> |
| | | <el-select v-model="search.type" size="small" placeholder="è¯·éæ©" style="width: 224px;margin-right: 30px;"> |
| | | <el-option label="å
¨é¨" :value="null"></el-option> |
| | | <el-option label="éè¿" :value="0"></el-option> |
| | | <el-option label="ä¸éè¿" :value="1"></el-option> |
| | | <el-option label="æªå®¡æ ¸" :value="2"></el-option> |
| | | </el-select> |
| | | <span>äº¤è´§æ¥æï¼</span> |
| | | <el-date-picker v-model="search.delTime" size="small" placeholder="请è¾å
¥" style="width: 224px;margin-right: 30px;" |
| | | clearable value-format="yyyy-MM-dd"></el-date-picker> |
| | | <el-button size="mini" @click="clean()"><span>é ç½®</span></el-button> |
| | | <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectRawInspectsList()"> |
| | | <span>æ¥è¯¢</span> |
| | | </el-button> |
| | | </div> |
| | | <div class="thing"> |
| | | <el-table :data="tableData" border style="width: 100%;overflow-y: auto;min-height: calc(100% - 50px)" |
| | | max-height="calc(100% - 50px)" @selection-change="handleSelectionChange" default-expand-all row-key="id"> |
| | | <el-table-column type="selection" width="50"> |
| | | </el-table-column> |
| | | <el-table-column type="index" label="åºå·" width="65"> |
| | | </el-table-column> |
| | | <el-table-column prop="order_number" label="订åç¼å·" width="150"> |
| | | </el-table-column> |
| | | <el-table-column prop="code" label="ååç¼å·" width="220"> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="å·¥ç¨åç§°"> |
| | | </el-table-column> |
| | | <el-table-column prop="proname" label="客æ·åç§°"> |
| | | </el-table-column> |
| | | <el-table-column prop="äº¤è´§æ¥æ" label="äº¤è´§æ¥æ" width="150"> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="ç¶æ" width="100"> |
| | | <template slot-scope="scope"> |
| | | <span style="color: #34BD66;" v-if="scope.row.type==1">éè¿</span> |
| | | <span style="color: #E84738;" v-else-if="scope.row.type==0">ä¸éè¿</span> |
| | | <span v-else></span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" width="220"> |
| | | <template slot-scope="scope"> |
| | | <span class="table_do" @click="changeShowDetail(scope.row)"> æ¥ç详æ
</span> |
| | | <span class="table_do" v-if="scope.row.type==null"> å®¡æ ¸ </span> |
| | | <span class="table_do" v-else> </span> |
| | | <span class="table_do"> ç¼è¾ </span> |
| | | <span class="table_do"> å é¤ </span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-col style="height: 50px;display: flex;align-items: center;justify-content: right;"> |
| | | <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" |
| | | :page-sizes="[1,10, 20, 30, 50]" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" |
| | | :total="countSize"> |
| | | </el-pagination> |
| | | </el-col> |
| | | </div> |
| | | <div class="select-model"> |
| | | <el-dialog title="éå®è¯¦æ
" :visible.sync="selectDia" width="750px"> |
| | | <div class="body" v-if="oneData!=null"> |
| | | <div class="head">åºæ¬ä¿¡æ¯</div> |
| | | <div class="content"> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">订åç¼å·</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{oneData.orderNumber}}</div> |
| | | </el-col> |
| | | <el-col :span="3" :offset="2">ååç¼å·</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{oneData.code}}</div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">å·¥ç¨åç§°</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{oneData.name}}</div> |
| | | </el-col> |
| | | <el-col :span="3" :offset="2">ç¶æ</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value" v-if="oneData.type == 1" style="color: #34BD66;">éè¿</div> |
| | | <div class="value" v-else-if="oneData.type == 2" style="color: #E84738;">ä¸éè¿</div> |
| | | <div class="value" v-else> </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="head">客æ·ä¿¡æ¯</div> |
| | | <div class="content"> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">客æ·åç§°</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{oneData.proname}}</div> |
| | | </el-col> |
| | | <el-col :span="3" :offset="2">æ¶è´§å°å</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{oneData.adress}}</div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">è系人</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{oneData.username}}</div> |
| | | </el-col> |
| | | <el-col :span="3" :offset="2">èç³»çµè¯</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{oneData.phone}}</div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">ä¸å¡å</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{JSON.parse(oneData.saleman)}}</div> |
| | | </el-col> |
| | | <el-col :span="3" :offset="2">ä¸å人</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{oneData.orderName}}</div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">äº¤è´§æ¥æ</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{oneData.delTime}}</div> |
| | | </el-col> |
| | | <el-col :span="3" :offset="2">å®¡æ ¸äºº</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{JSON.parse(oneData.checkname)}}</div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">å®¡æ ¸æ¥æ</el-col> |
| | | <el-col :span="8"> |
| | | <div class="value">{{oneData.checkTime}}</div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="head">产åä¿¡æ¯</div> |
| | | <div class="content"> |
| | | <el-table :data="oneData.saleMaterialList" border style="width: 100%"> |
| | | <el-table-column prop="name" label="产ååç§°" width="180"> |
| | | </el-table-column> |
| | | <el-table-column prop="specifications" label="è§æ ¼åå·" width="200"> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="åä½"> |
| | | </el-table-column> |
| | | <el-table-column prop="number" label="æ°é"> |
| | | </el-table-column> |
| | | <el-table-column prop="price" label="åä»·"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | <div class="select-model"> |
| | | <el-dialog title="é宿°å¢" :visible.sync="addDia" width="750px"> |
| | | <div class="body"> |
| | | <div class="head">åºæ¬ä¿¡æ¯</div> |
| | | <div class="content"> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">订åç¼å·</el-col> |
| | | <el-col :span="8"> |
| | | <el-input v-model="addData.orderNumber" size="small" placeholder="请è¾å
¥è®¢åç¼å·" clearable></el-input> |
| | | </el-col> |
| | | <el-col :span="3" :offset="2">ååç¼å·</el-col> |
| | | <el-col :span="8"> |
| | | <el-input v-model="addData.code" size="small" placeholder="请è¾å
¥ååç¼å·" clearable></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">å·¥ç¨åç§°</el-col> |
| | | <el-col :span="8"> |
| | | <el-input v-model="addData.name" size="small" placeholder="请è¾å
¥å·¥ç¨åç§°" clearable></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="head">客æ·ä¿¡æ¯</div> |
| | | <div class="content"> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">客æ·åç§°</el-col> |
| | | <el-col :span="8"> |
| | | <el-input v-model="addData.proname" size="small" placeholder="请è¾å
¥å®¢æ·åç§°" clearable></el-input> |
| | | </el-col> |
| | | <el-col :span="3" :offset="2">æ¶è´§å°å</el-col> |
| | | <el-col :span="8"> |
| | | <el-input v-model="addData.adress" size="small" placeholder="请è¾å
¥æ¶è´§å°å" clearable></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">è系人</el-col> |
| | | <el-col :span="8"> |
| | | <el-input v-model="addData.username" size="small" placeholder="请è¾å
¥è系人" clearable></el-input> |
| | | </el-col> |
| | | <el-col :span="3" :offset="2">èç³»çµè¯</el-col> |
| | | <el-col :span="8"> |
| | | <el-input v-model="addData.phone" size="small" placeholder="请è¾å
¥èç³»çµè¯" clearable></el-input> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="line-height: 30px;margin: 15px 0;"> |
| | | <el-col :span="3">ä¸å人</el-col> |
| | | <el-col :span="8"> |
| | | <el-input v-model="addData.orderName" size="small" placeholder="请è¾å
¥ä¸å人" clearable></el-input> |
| | | </el-col> |
| | | <el-col :span="3" :offset="2">äº¤è´§æ¥æ</el-col> |
| | | <el-col :span="8"> |
| | | <el-date-picker v-model="addData.delTime" size="small" placeholder="请è¾å
¥äº¤è´§æ¥æ" clearable |
| | | value-format="yyyy-MM-dd"></el-date-picker> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="head" style="line-height: 50px;"> |
| | | <el-col :span="12">产åä¿¡æ¯</el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <el-button size="mini" @click="addSaleMaterial"><span style="font-size: 12px;">æ·»å è¡</span></el-button> |
| | | </el-col> |
| | | </div> |
| | | <div class="content"> |
| | | <el-table :data="addData.saleMaterialList" border style="width: 100%"> |
| | | <el-table-column prop="name" label="产ååç§°" width="180"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.name" size="small" clearable placeholder="请è¾å
¥äº§ååç§°"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="specifications" label="è§æ ¼åå·" width="200"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.specifications" size="small" clearable placeholder="请è¾å
¥è§æ ¼åå·"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="unit" label="åä½"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.unit" size="small" clearable placeholder="请è¾å
¥"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="number" label="æ°é"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model.number="scope.row.number" size="small" |
| | | @change="scope.row.number = isNaN(scope.row.number)?0:scope.row.number" clearable placeholder="请è¾å
¥"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="price" label="åä»·"> |
| | | <template slot-scope="scope"> |
| | | <el-input v-model="scope.row.price" size="small" clearable placeholder="请è¾å
¥"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="addSale">ç¡® å®</el-button> |
| | | <el-button @click="addDia = false">å æ¶</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | search: { |
| | | code: null, |
| | | name: null, |
| | | type: null, |
| | | delTime: null |
| | | }, |
| | | tableData: [], |
| | | selects: [], |
| | | currentPage: 1, |
| | | countSize: 0, |
| | | pageSize: 10, |
| | | selectDia: false, |
| | | oneData: null, |
| | | addDia: true, |
| | | addData: { |
| | | saleMaterialList: [] |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.selectRawInspectsList() |
| | | }, |
| | | methods: { |
| | | handleSelectionChange(val) { |
| | | this.selects = val; |
| | | }, |
| | | handleSizeChange(val) { |
| | | this.pageSize = val |
| | | this.selectRawInspectsList() |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.currentPage = val |
| | | this.selectRawInspectsList() |
| | | }, |
| | | selectRawInspectsList() { |
| | | this.axios.get(this.$api.url.selectSaleList, { |
| | | params: { |
| | | pageSize: this.currentPage, |
| | | countSize: this.pageSize, |
| | | delTime: this.search.delTime, |
| | | name: this.search.name, |
| | | type: this.search.type, |
| | | orderNumber: this.search.code |
| | | } |
| | | }).then(res => { |
| | | this.tableData = res.data.row |
| | | this.countSize = res.data.total |
| | | }) |
| | | }, |
| | | clean() { |
| | | this.selects = [] |
| | | this.currentPage = 1 |
| | | this.countSize = 0 |
| | | this.pageSize = 10 |
| | | this.search = { |
| | | formTime: null, |
| | | createTime: null, |
| | | insState: 2, |
| | | judgeState: 2 |
| | | } |
| | | this.selectRawInspectsList() |
| | | }, |
| | | changeShowDetail(ob) { |
| | | this.selectDia = true |
| | | this.axios.get(this.$api.url.selectSaleDatilById, { |
| | | params: { |
| | | id: ob.id |
| | | } |
| | | }).then(res => { |
| | | this.oneData = res.data |
| | | }) |
| | | }, |
| | | addSaleMaterial() { |
| | | this.addData.saleMaterialList.push({}) |
| | | }, |
| | | addSale() { |
| | | this.axios.post(this.$api.url.addSale, this.addData, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | console.log(res); |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |