|
@@ -7,8 +7,6 @@
|
|
|
<el-form
|
|
|
size="mini"
|
|
|
:model="form"
|
|
|
- :rules="rules"
|
|
|
- ref="form"
|
|
|
label-width="auto"
|
|
|
>
|
|
|
<el-row :gutter="10">
|
|
@@ -37,19 +35,13 @@
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-form-item label="客户" prop="customer">
|
|
|
- <dr-popover-select
|
|
|
- :readonly="this.openMode == 'edit' || this.openMode == 'see'"
|
|
|
- size="mini"
|
|
|
+ <el-input
|
|
|
+ placeholder="自动生成"
|
|
|
+ readonly
|
|
|
v-model="form.customerName"
|
|
|
- title="客户选择"
|
|
|
- type="CUSTOMER_PARAM_ZT"
|
|
|
- :dataMapping="{
|
|
|
- customer: 'id',
|
|
|
- customerName: 'name',
|
|
|
- }"
|
|
|
- :source.sync="form"
|
|
|
- >
|
|
|
- </dr-popover-select>
|
|
|
+ style="width: 200px"
|
|
|
+ clearable
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
@@ -85,11 +77,11 @@
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
</el-card>
|
|
|
- <el-card style="height: 800px">
|
|
|
+ <el-card style="height: 750px">
|
|
|
<div style="position: relative">
|
|
|
<el-tabs v-model="activeName" @tab-click="useSwitchTab">
|
|
|
<el-tab-pane label="明细" name="item">
|
|
|
- <el-table :data="items" height="700px" size="size">
|
|
|
+ <el-table :data="items" height="600px" size="size" v-loading="loading">
|
|
|
<el-table-column
|
|
|
label="序号"
|
|
|
type="index"
|
|
@@ -129,26 +121,16 @@
|
|
|
show-overflow-tooltip
|
|
|
label="单位"
|
|
|
align="center"
|
|
|
- width="150"
|
|
|
+ width="100"
|
|
|
prop="unitName"
|
|
|
/>
|
|
|
<el-table-column
|
|
|
show-overflow-tooltip
|
|
|
label="价格(元)"
|
|
|
align="center"
|
|
|
- width="150"
|
|
|
+ width="100"
|
|
|
prop="price"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-input-number
|
|
|
- size="mini"
|
|
|
- style="width: 130px"
|
|
|
- v-model="scope.row.price"
|
|
|
- :controls="false"
|
|
|
- >
|
|
|
- </el-input-number>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
show-overflow-tooltip
|
|
|
label="日 销 售 数 据 填 报"
|
|
@@ -679,7 +661,7 @@
|
|
|
<el-button
|
|
|
type="text"
|
|
|
size="mini"
|
|
|
- @click="useRowRemove(scope.$index, scope.row)"
|
|
|
+ @click="useRowRemove(scope.row)"
|
|
|
>删行</el-button
|
|
|
>
|
|
|
</template>
|
|
@@ -687,9 +669,19 @@
|
|
|
</el-table>
|
|
|
</el-tab-pane>
|
|
|
</el-tabs>
|
|
|
+ <el-pagination
|
|
|
+ background
|
|
|
+ @size-change="useChangePageSize"
|
|
|
+ @current-change="useCurrentChange"
|
|
|
+ :current-page="queryParams.pageNum"
|
|
|
+ :page-sizes="[10, 15, 20]"
|
|
|
+ :page-size="100"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total=total>
|
|
|
+ </el-pagination>
|
|
|
<div style="position: absolute; right: 10px; top: 5px; display: flex">
|
|
|
- <Choosematerial @addRow="addRow" :form="form"></Choosematerial>
|
|
|
- <Addmaterial @addRow="addRow"></Addmaterial>
|
|
|
+ <Choosematerial @useReset="useReset" :form="form"></Choosematerial>
|
|
|
+ <Addmaterial @useReset="useReset" :form="form"></Addmaterial>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-card>
|
|
@@ -709,11 +701,8 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import {
|
|
|
- addAssess,
|
|
|
- updateAssess,
|
|
|
- getAssess,
|
|
|
-} from "@/api/business/spd/fillin/dailysale_quantity_assess";
|
|
|
+import { getAssess } from "@/api/business/spd/fillin/dailysale_quantity_assess";
|
|
|
+import { listItem,saveItems,delItems } from "@/api/business/spd/fillin/dailysale_quantity_assess_item";
|
|
|
import Addmaterial from "./addmaterial";
|
|
|
import Choosematerial from "./choosematerial";
|
|
|
export default {
|
|
@@ -722,93 +711,56 @@ export default {
|
|
|
props: ["openMode", "row"],
|
|
|
data() {
|
|
|
return {
|
|
|
- form: {
|
|
|
- month: null,
|
|
|
- customer: null,
|
|
|
- customerName: null,
|
|
|
- items: [],
|
|
|
- //所选月份天数
|
|
|
- numDay:31,
|
|
|
- },
|
|
|
- //表单校验
|
|
|
- rules: {
|
|
|
- month: [{ required: true, message: "月份不能为空", trigger: "blur" }],
|
|
|
- customer: [
|
|
|
- { required: true, message: "客户不能为空", trigger: "blur" },
|
|
|
- ],
|
|
|
+ loading: false,
|
|
|
+ //主表
|
|
|
+ form: {},
|
|
|
+ //所选月份天数
|
|
|
+ numDay:31,
|
|
|
+ //明细
|
|
|
+ items:[],
|
|
|
+ //明细查询条件
|
|
|
+ queryParams:{
|
|
|
+ dailysaleQuantityAssessId: null,
|
|
|
+ pageNum:1,
|
|
|
+ pageSize:10,
|
|
|
},
|
|
|
+ //总条数
|
|
|
+ total: 0,
|
|
|
activeName: "item",
|
|
|
};
|
|
|
},
|
|
|
- watch: {
|
|
|
- 'form.month': {
|
|
|
- handler(newVal) {
|
|
|
- let arr = newVal.split('-');
|
|
|
- this.numDay = this.getDays(arr[0],arr[1]);
|
|
|
- },
|
|
|
- immediate:true,
|
|
|
- }
|
|
|
- },
|
|
|
- computed: {
|
|
|
- items() {
|
|
|
- return this.form.items.filter(({ delFlag }) => delFlag !== "2");
|
|
|
- },
|
|
|
- },
|
|
|
async created() {
|
|
|
switch (this.openMode) {
|
|
|
- case "add":
|
|
|
- this.form.createTime = this.getCurrentTime();
|
|
|
- this.form.month = this.getCurrentMonth();
|
|
|
- this.form.createByName = this.$store.state.user.nickName;
|
|
|
- this.form.dept = this.$store.state.user.deptId;
|
|
|
- this.form.deptName = this.$store.state.user.deptName;
|
|
|
- break;
|
|
|
case "edit":
|
|
|
await this.fetchAssess(this.row.id);
|
|
|
- this.total();
|
|
|
- console.log('this.form.items',this.form.items);
|
|
|
+ await this.fetchItem(this.row.id);
|
|
|
break;
|
|
|
case "see":
|
|
|
await this.fetchAssess(this.row.id);
|
|
|
- this.total();
|
|
|
+ await this.fetchItem(this.row.id);
|
|
|
break;
|
|
|
}
|
|
|
+ let arr = this.form.month.split('-');
|
|
|
+ this.numDay = this.getDays(arr[0],arr[1]);
|
|
|
},
|
|
|
methods: {
|
|
|
//保存
|
|
|
async useSave() {
|
|
|
- this.$refs["form"].validate(async (valid) => {
|
|
|
- if (valid) {
|
|
|
- try {
|
|
|
- let checkRes = this.checkBeforeSave(this.form);
|
|
|
- if (!checkRes) {
|
|
|
- return;
|
|
|
- }
|
|
|
- this.loading = true;
|
|
|
- let res = null;
|
|
|
- if (this.openMode === "add") {
|
|
|
- res = await addAssess(this.form);
|
|
|
- }
|
|
|
- if (this.openMode === "edit") {
|
|
|
- res = await updateAssess(this.form);
|
|
|
- }
|
|
|
- if (res.code === 200) {
|
|
|
- this.$modal.msgSuccess("保存成功");
|
|
|
- this.useBack();
|
|
|
- }
|
|
|
- } catch (err) {
|
|
|
- console.error(err);
|
|
|
- } finally {
|
|
|
- this.loading = false;
|
|
|
- }
|
|
|
- } else {
|
|
|
- return false;
|
|
|
+ this.loading = true;
|
|
|
+ try {
|
|
|
+ let res = null;
|
|
|
+ if (this.openMode === "edit") {
|
|
|
+ res = await saveItems(this.items);
|
|
|
}
|
|
|
- });
|
|
|
- },
|
|
|
- //保存前校验
|
|
|
- checkBeforeSave(form) {
|
|
|
- return true;
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$modal.msgSuccess("保存成功");
|
|
|
+ this.useBack();
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ console.error(err);
|
|
|
+ } finally {
|
|
|
+ this.loading = false;
|
|
|
+ };
|
|
|
},
|
|
|
//查询详情
|
|
|
async fetchAssess(id) {
|
|
@@ -830,28 +782,27 @@ export default {
|
|
|
this.loading = false;
|
|
|
}
|
|
|
},
|
|
|
- //增行
|
|
|
- addRow(rows) {
|
|
|
- console.log("rows", rows);
|
|
|
- for (let i in rows) {
|
|
|
- this.form.items.push({
|
|
|
- delFlag: "0",
|
|
|
- $index: new Date().getTime(),
|
|
|
- ...rows[i],
|
|
|
- });
|
|
|
- }
|
|
|
+ //查询明细
|
|
|
+ async fetchItem(pid){
|
|
|
+ this.loading = true;
|
|
|
+ this.queryParams.dailysaleQuantityAssessId = pid;
|
|
|
+ await listItem(this.queryParams).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.items = res.rows
|
|
|
+ this.total = res.total
|
|
|
+ this.aggregate();
|
|
|
+ }
|
|
|
+ this.loading = false;
|
|
|
+ })
|
|
|
},
|
|
|
//删行
|
|
|
- async useRowRemove(index, row) {
|
|
|
- if (row.id) {
|
|
|
- this.form.items.forEach((e) => {
|
|
|
- if (e.id == row.id) {
|
|
|
- e.delFlag = "2";
|
|
|
- }
|
|
|
- });
|
|
|
- } else {
|
|
|
- this.form.items.splice(index, 1);
|
|
|
- }
|
|
|
+ async useRowRemove(row) {
|
|
|
+ let arr = [row.id];
|
|
|
+ delItems(arr).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.fetchItem(this.form.id);
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
//切换多页签
|
|
|
useSwitchTab() {},
|
|
@@ -860,51 +811,45 @@ export default {
|
|
|
this.$parent.useOpenDetail();
|
|
|
this.$parent.useSearch();
|
|
|
},
|
|
|
- //获取当月
|
|
|
- getCurrentMonth () {
|
|
|
- const date = new Date()
|
|
|
- let year = date.getFullYear()
|
|
|
- let month = date.getMonth() + 1
|
|
|
- month = month > 9 ? month : '0' + month
|
|
|
- return `${year}-${month}`
|
|
|
- },
|
|
|
+ //获取当前月份天数
|
|
|
getDays(year, month){
|
|
|
return new Date(year, month, 0).getDate()
|
|
|
},
|
|
|
- getCurrentTime() {
|
|
|
- var date = new Date();//当前时间
|
|
|
- var year = date.getFullYear() //年
|
|
|
- var month = this.repair(date.getMonth() + 1);//月
|
|
|
- var day = this.repair(date.getDate());//日
|
|
|
- var hour = this.repair(date.getHours());//时
|
|
|
- var minute = this.repair(date.getMinutes());//分
|
|
|
- var second = this.repair(date.getSeconds());//秒
|
|
|
- //当前时间
|
|
|
- var curTime = year + "-" + month + "-" + day
|
|
|
- + " " + hour + ":" + minute + ":" + second;
|
|
|
- return curTime;
|
|
|
- },
|
|
|
- repair(i){
|
|
|
- if (i >= 0 && i <= 9) {
|
|
|
- return "0" + i;
|
|
|
- } else {
|
|
|
- return i;
|
|
|
- }
|
|
|
- },
|
|
|
//计算合计
|
|
|
- total(){
|
|
|
+ aggregate(){
|
|
|
let num = ["first","second","third","fourth","fifth","sixth","seventh","eighth","ninth","tenth","eleventh","twelfth","thirteenth","fourteenth","fifteenth"
|
|
|
,"twentyFirst","seventeenth","eighteenth","nineteenth","twentieth","twentyFirst","twentySecond","twentyThird","twentyFourth","twentyFifth","twentySixth","twentySeventh","twentyEighth","twentyNinth","thirtieth","thirtyFirst"];
|
|
|
- for(let i in this.form.items){
|
|
|
+ for(let i in this.items){
|
|
|
let c = 0;
|
|
|
for(let j in num){
|
|
|
- c = (this.form.items[i][num[j]] || 0) - 0 + c;
|
|
|
+ c = (this.items[i][num[j]] || 0) - 0 + c;
|
|
|
}
|
|
|
- console.log('c',c);
|
|
|
- this.form.items[i].amount = c;
|
|
|
- this.form.items[i].money = c * (this.form.items[i].price || 0);
|
|
|
+ this.items[i].amount = c;
|
|
|
+ this.items[i].money = c * (this.items[i].price || 0);
|
|
|
}
|
|
|
- }
|
|
|
+ console.log('this.items222',this.items);
|
|
|
+ },
|
|
|
+ //改变一页显示条数
|
|
|
+ async useChangePageSize(val){
|
|
|
+ this.queryParams.pageSize = val
|
|
|
+ await saveItems(this.items);
|
|
|
+ await this.fetchItem(this.form.id);
|
|
|
+ },
|
|
|
+ //翻页
|
|
|
+ async useCurrentChange(val){
|
|
|
+ this.queryParams.pageNum = val
|
|
|
+ await saveItems(this.items);
|
|
|
+ await this.fetchItem(this.form.id);
|
|
|
+ },
|
|
|
+ //重置
|
|
|
+ useReset(){
|
|
|
+ this.queryParams = {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ }
|
|
|
+ this.fetchItem(this.form.id);
|
|
|
+ this.aggregate();
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
@@ -916,4 +861,8 @@ export default {
|
|
|
display: flex;
|
|
|
justify-content: right;
|
|
|
}
|
|
|
+.el-pagination {
|
|
|
+ margin-top: 10px;
|
|
|
+ text-align: right;
|
|
|
+}
|
|
|
</style>
|