You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udiwms-vue-frame/src/views/basic/destiny/skProject.vue

363 lines
11 KiB
Vue

<template>
<div>
<el-card>
<el-form :model="filterQuery" label-width="100px" size="mini">
<el-row>
<el-col :span="6">
<el-form-item label="项目名称:" class="query-form-item">
<el-input v-model="filterQuery.name" placeholder="请输入项目名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目编码:" class="query-form-item">
<el-input v-model="filterQuery.code" placeholder="请输入项目编码"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item>
<el-button-group>
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"></el-button>
<el-button type="primary" icon="el-icon-plus" @click="handleAddClick"></el-button>
</el-button-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-table v-loading="loading" :data="list" @current-change="handleDetail" border highlight-current-row
style="width: 100%">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="项目编码" prop="code" width="140"></el-table-column>
<el-table-column label="项目名称" prop="name" width="160"></el-table-column>
<el-table-column label="备注" prop="remark" width="180"></el-table-column>
<el-table-column label="创建人" prop="createByName" width="140"></el-table-column>
<el-table-column label="创建时间" prop="createTime" width="160"></el-table-column>
<el-table-column label="操作" width="160" fixed="right">
<template slot-scope="scope">
<el-button type="text" size="small" @click.native.stop="handleModifyClick(scope.row)">编辑</el-button>
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)">删除</el-button>
<!-- <el-button type="text" size="small" @click.native.stop="selectDialog(scope.row)">选入产品</el-button>-->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="handleCurrentChange"
></pagination>
</el-card>
<el-card>
<el-row>
<el-col :span="24">
<el-button type="primary" style="float: right;margin-bottom: 12px;margin-right: 20px" size="small"
icon="search" @click="selectProduct">新增产品
</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="delectList" border highlight-current-row style="width: 100%">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="产品DI" prop="nameCode"></el-table-column>
<el-table-column label="产品编码" prop="thirdId"></el-table-column>
<el-table-column label="产品名称" prop="cpmctymc"></el-table-column>
<el-table-column label="规格型号" prop="ggxh"></el-table-column>
<el-table-column label="计量单位" prop="measname"></el-table-column>
<el-table-column label="数量" prop="count">
<template slot-scope="scope">
<el-input size="small" v-model="scope.row.count"
placeholder="请输入数量" style="width: 80%"
type='number'
:disabled="scope.row.index !== selectedIndex"
oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</template>
</el-table-column>
<el-table-column label="生产企业" prop="ylqxzcrbarmc"></el-table-column>
<el-table-column label="注册/备案号" prop="zczbhhzbapzbh"></el-table-column>
<el-table-column label="操作" width="220">
<template slot-scope="scope">
<el-button type="text" size="small" :disabled="scope.row.index === selectedIndex"
@click.native.stop="rowChange(scope.row)">编辑
</el-button>
<el-button type="text" size="small" :disabled="scope.row.index !== selectedIndex" @click.stop="true"
@click.native="tableCountChange(scope.row)">保存
</el-button>
<el-button type="text" size="small" @click.native.stop="delectModifyClick(scope.row)">移除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="delectTotal>0"
:total="delectTotal"
:limit.sync="delectQuery.limit"
:page.sync="delectQuery.page"
@pagination="handleCurrentDelectChange"
></pagination>
</el-card>
<el-dialog
:title="formMap[formName]"
:visible.sync="formVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="40%"
:before-close="closeDialog"
v-if="formVisible"
>
<destinyModelEdit
:editQuery="editQuery"
:closeDialog="closeDialog"
></destinyModelEdit>
</el-dialog>
<el-dialog
title="选入产品"
:visible.sync="selectFormVisible"
append-to-body
:close-on-click-modal="false"
:close-on-press-escape="false"
width="80%"
:before-close="closeProudDialog"
v-if="selectFormVisible"
>
<destinySelectProduct
:editQuery="editLogin"
:closeDialog="closeProudDialog"
></destinySelectProduct>
</el-dialog>
</div>
</template>
<script>
import {
addModeldestiny,
delectModeldestiny, delectModeldestinyProduct,
filterDestinyDelect,
getBasicDestinyfilter, uploadModeldestinyProduct
} from "@/api/basic/basicDestinyRel";
import destinyModelEdit from "@/views/basic/destiny/destinyModelEdit";
import destinyModelSelectProduct from "@/views/basic/destiny/destinyModelSelectProduct";
import destinySelectProduct from "@/views/basic/destiny/destinySelectProduct";
export default {
data() {
return {
filterQuery: {
name: "",
code: "",
type: 2,
page: 1,
limit: 20
},
editType: "",
formVisible: false,
selectFormVisible: false,
loading: false,
formName: "",
total: 0,
list: [],
codeArray: [],
editQuery: {},
formMap: {
"add": "物资项目-新增",
"edit": "物资项目-编辑"
},
delectQuery: {
id: null,
page: 1,
limit: 20
},
delectList: [],
delectTotal: 0,
selectedIndex: '',
editLogin: {
id: null,
cpmctymc: null,
ids: [],
page: 1,
limit: 10,
},
};
},
methods: {
onReset() {
this.$router.push({
path: ""
});
this.filterQuery = {
name: "",
code: "",
type: 2,
page: 1,
limit: 20
};
this.getList();
},
onSubmit() {
this.$router.push({
path: "",
});
this.filterQuery.page = 1;
this.getList();
},
getList() {
this.loading = true;
getBasicDestinyfilter(this.filterQuery).then(response => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
}).catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
this.roles = [];
});
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
handleCurrentDelectChange(val) {
this.delectQuery.page = val.page;
this.filterDestinyDelect()
},
handleAddClick() {
this.formName = "add";
this.formVisible = true;
},
handleModifyClick(row) {
this.formName = "edit";
this.formVisible = true;
this.editQuery = row;
},
deleteDialog(row) {
this.$confirm("删除该项目,项目底下所有产品也会被移除,是否确定删除?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.loading = true;
delectModeldestiny(row).then(res => {
if (res.code == 20000) {
this.getList();
} else {
this.$message.error(res.message);
}
}).catch(() => {
this.$message.error("删除失败!");
});
}).catch(() => {
});
},
selectDialog(row) {
this.selectFormVisible = true;
this.editQuery = row;
},
closeDialog() {
this.formVisible = false;
this.selectFormVisible = false;
this.getList();
this.delectList = []
this.editQuery = {}
},
handleDetail(row) {
this.delectQuery.id = row.id
this.editQuery = row;
this.filterDestinyDelect()
},
filterDestinyDelect() {
filterDestinyDelect(this.delectQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.delectList = response.data.list || [];
this.delectTotal = response.data.total || 0;
} else {
this.$message.error(response.message);
this.delectList = [];
this.delectTotal = 0;
}
})
.catch(() => {
this.loading = false;
this.delectList = [];
this.delectTotal = 0;
});
},
rowChange(val) {
this.selectedIndex = val.index
},
tableCountChange(row) {
if (this.$isNotBlank(row)) {
var query = {
id: row.deId,
count: row.count
}
uploadModeldestinyProduct(query);
this.selectedIndex = null
}
},
delectModifyClick(row) {
this.$confirm("是否确定移除该产品?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
this.loading = true;
let tquery = {
id: row.deId
};
delectModeldestinyProduct(tquery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.filterDestinyDelect();
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.certLoading = false;
});
}).catch(() => {
});
},
selectProduct() {
this.editLogin.id = this.editQuery.id
this.selectFormVisible = true;
},
closeProudDialog() {
this.selectFormVisible = false;
this.filterDestinyDelect();
},
}
,
mounted() {
}
,
components: {
destinyModelEdit, destinyModelSelectProduct, destinySelectProduct
}
,
created() {
this.getList();
}
}
;
</script>