李林
2024-03-05 8eaf955f23f4374a9ecfae998c78fe6781784a9f
标准库及部分功能调整
已修改4个文件
292 ■■■■ 文件已修改
src/assets/api/controller.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/tool/value-table.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/view/b2-standard.vue 271 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/api/controller.js
@@ -112,6 +112,11 @@
    addStandardTree: "/standardTree/addStandardTree", //添加标准树
    addStandardMethodList: "/standardTree/addStandardMethodList", //给标准树添加检验标准
    selectsStandardMethodByFLSSM: "/standardTree/selectsStandardMethodByFLSSM", //根据标准树进行标准查询
    upStandardProductList: "/standardTree/upStandardProductList", //修改标准库中的要求值
    delStandardMethodByFLSSM: "/standardTree/delStandardMethodByFLSSM", //删除标准树下的检验标准
    delStandardProductByIds: "/standardTree/delStandardProductByIds", //删除标准树下的检验项目
    addStandardProduct: "/standardTree/addStandardProduct", //新增标准树下的检验项目
    delStandardTree: "/standardTree/delStandardTree", //删除标准树的层级
}
const standardMethod = {
src/components/tool/value-table.vue
@@ -31,7 +31,7 @@
        justify-content: center;
    }
    .body{
    .body {
        overflow-x: hidden;
    }
</style>
@@ -51,10 +51,10 @@
            <el-table ref="eltable" :data="tableData" style="width: 100%;" height="100%" tooltip-effect="dark" border
                @selection-change="selectChange" @select="select" v-loading="loading" @sort-change="sortChange"
                @row-click="rowClick" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0"
                :summary-method="getSummaries">
                <el-table-column type="selection" width="65" v-if="data.showSelect">
                :summary-method="getSummaries" :key="Math.random()">
                <el-table-column type="selection" width="65" v-if="data.showSelect" :key="Math.random()">
                </el-table-column>
                <el-table-column type="index" align="center" label="序号" width="70" v-if="data.isIndex">
                <el-table-column type="index" align="center" label="序号" width="70" v-if="data.isIndex" :key="Math.random()">
                </el-table-column>
                <el-table-column :prop="a.label" :label="a.value" sortable="custom" v-for="(a, ai) in tableHead" :key="ai"
                    show-overflow-tooltip min-width="160">
@@ -223,7 +223,7 @@
                                order: 'asc'
                            }
                        },
                        isIndex: true,
                        isIndex: false,
                        showSelect: false,
                        select: true,
                        row: 1,
@@ -264,7 +264,7 @@
                            order: 'asc'
                        }
                    },
                    isIndex: true,
                    isIndex: false,
                    showSelect: false,
                    select: true,
                    row: 1,
@@ -411,7 +411,6 @@
                return false
            },
            main(row, val) {
                console.log(val);
                if (val.method == undefined) return
                else if (val.method == 'doDiy') {
                    if (val.id == 'update') {
@@ -505,7 +504,6 @@
                })
            },
            openAddDia(addUrl) {
                console.log(addUrl);
                this.addDia = true
                this.addUrl = addUrl
                this.upData = {}
src/components/view/b2-standard.vue
@@ -44,19 +44,19 @@
        background-color: white;
    }
    .standard_table{
    .standard_table {
        border-top: 1px solid #ebeef5;
        background-color: white;
    }
    .product_table{
    .product_table {
        border-top: 1px solid #ebeef5;
        height: calc(100% - 275px);
        margin-top: 5px;
        background-color: white;
    }
    .product_table .el-table{
    .product_table .el-table {
        height: 100%;
    }
</style>
@@ -71,16 +71,16 @@
        color: #3A7BFA;
    }
    .standard .has-gutter .el-table__cell .cell{
    .standard .has-gutter .el-table__cell .cell {
        line-height: 38px;
        background-color: #fafafa;
    }
    .standard .has-gutter .el-table__cell{
    .standard .has-gutter .el-table__cell {
        background-color: #fafafa !important;
    }
    .standard .standard_table .el-table__row .cell{
    .standard .standard_table .el-table__row .cell {
        font-size: 14px;
    }
</style>
@@ -99,7 +99,7 @@
            </el-row>
            <el-tree :data="list" ref="tree" default-expand-all :props="{ children: 'children', label: 'label' }"
                node-key="id" :filter-node-method="filterNode" @node-click="handleNodeClick" highlight-current
                @node-expand="nodeOpen" @node-collapse="nodeClose" v-loading="treeLoad">
                @node-expand="nodeOpen" @node-collapse="nodeClose" v-loading="treeLoad" :expand-on-click-node="false">
                <div class="custom-tree-node" slot-scope="{ node, data }">
                    <el-row>
                        <el-col :span="21">
@@ -107,7 +107,7 @@
                                    :class="`node_i ${data.children != undefined ? 'el-icon-folder-opened' : 'el-icon-tickets'}`"></i>
                                {{ data.code }} {{ data.label }}</span>
                        </el-col>
                        <el-col :span="2" style="text-align: right;">
                        <el-col :span="2" style="text-align: right;" v-if="delStandardTree">
                            <el-button type="text" size="mini" @click.stop="remove(node, data)">
                                <i class="el-icon-delete"></i>
                            </el-button>
@@ -119,16 +119,17 @@
        <div class="right">
            <el-row class="title">
                <el-col :span="10" style="font-size: 14px;color: #999;">{{selectTree}}</el-col>
                <el-col :span="selectTree==''?24:14" style="text-align: right;">
                    <el-button size="small" type="primary" @click="addStandardDia = true" v-if="addStandardMethod">新增标准</el-button>
                    <el-button size="small" type="primary">新增项目</el-button>
                    <el-button size="small">
                <el-col :span="selectTree==''?24:14" style="text-align: right;" v-if="selectTree!=''">
                    <el-button size="small" type="primary" @click="addStandardDia = true"
                        v-if="addStandardMethod">新增标准</el-button>
                    <el-button size="small" type="primary" @click="addProductDia = true" v-if="addStandardProduct">新增项目</el-button>
                    <el-button size="small" @click="delStandardProductByIds" v-if="delStandardProduct">
                        <i class="el-icon-delete" style="color: #3A7BFA;"></i>
                        <span style="color: #3A7BFA;">删除</span>
                    </el-button>
                </el-col>
            </el-row>
            <el-row class="standard_table" v-loading="standardListLoad">
            <el-row class="standard_table" v-loading="tableLoad">
                <el-table class="el-table" :data="standardList" style="width: 100%;" height="220px" tooltip-effect="dark">
                    <el-table-column prop="code" label="标准编号" show-overflow-tooltip>
                        <template slot-scope="scope">
@@ -139,29 +140,32 @@
                    <el-table-column prop="remark" label="备注" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="createUserName" label="创建人"></el-table-column>
                    <el-table-column prop="createTime" label="创建时间" width="250px"></el-table-column>
                    <el-table-column label="操作" width="100" align="center">
                    <el-table-column label="操作" width="100" align="center" v-if="delStandardMethod">
                        <template slot-scope="scope">
                            <el-button type="text" size="small">删除</el-button>
                            <el-button type="text" size="small" @click="delStandardMethodByFLSSM(scope.row.id)">删除</el-button>
                        </template>
                    </el-table-column>
                </el-table>
            </el-row>
            <el-row class="product_table">
                <el-table :data="productList" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border>
            <el-row class="product_table" v-loading="tableLoad">
                <el-table :data="productList" style="width: 100%;" height="100%" tooltip-effect="dark" stripe :fit="true" border
                    @selection-change="handleSelectionChange">
                    <el-table-column type="selection" width="65"></el-table-column>
                    <el-table-column prop="code" label="检验项" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="name" label="检验项类型" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="remark" label="检验项小类" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="remark" label="实验室" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="remark" label="计量单位" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="remark" label="单价" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="remark" label="工时" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="remark" label="工时分组" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="remark" label="设备组" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="remark" label="区间" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="remark" label="要求值">
                    <el-table-column prop="inspectionItem" label="检验项" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="inspectionItemClassify" label="检验项类型" width="120" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="inspectionItemSubclass" label="检验项小类" width="120" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="laboratory" label="实验室" width="120" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="unit" label="计量单位" width="100" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="price" label="单价" width="100" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="manHour" label="工时" width="80" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="manHourGroup" label="工时分组" width="100" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="deviceGroup" label="设备组" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="section" label="区间" width="120" show-overflow-tooltip></el-table-column>
                    <el-table-column prop="ask" label="要求值" width="220px">
                        <template slot-scope="scope">
                            <el-input size="small" placeholder="要求值" v-model="scope.row.ask"></el-input>
                            <el-input size="small" placeholder="要求值" v-model="scope.row.ask" clearable
                                @change="(value)=>upStandardProductList(value,scope.row.id)" v-if="upStandardProduct"></el-input>
                            <span v-else>{{scope.row.ask}}</span>
                        </template>
                    </el-table-column>
                </el-table>
@@ -241,11 +245,24 @@
                <el-button type="primary" @click="addStandardMethodList" :loading="addLoad2">确 定</el-button>
            </span>
        </el-dialog>
        <el-dialog title="新增项目" :visible.sync="addProductDia" width="70%">
            <div class="body" style="height: 60vh;" v-if="addProductDia">
                <ValueTable ref="ValueTable" :url="$api.capacityScope.selectItemParameterList" :componentData="componentData"/>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="addProductDia = false">取 消</el-button>
                <el-button type="primary" @click="addStandardProductDo" :loading="addLoad3">确 定</el-button>
            </span>
        </el-dialog>
    </div>
</template>
<script>
    import ValueTable from '../tool/value-table.vue'
    export default {
        components: {
            ValueTable
        },
        data() {
            return {
                search: null,
@@ -273,7 +290,30 @@
                addStandardMethod: true,
                addLoad2: false,
                productList: [],
                standardListLoad: false
                tableLoad: false,
                upStandardProduct: false,
                delStandardMethod: false,
                selects: [],
                delStandardProduct: false,
                addProductDia: false,
                productId: null,
                addStandardProduct: false,
                addLoad3: false,
                productEnum: [],
                componentData: {
                    entity: {
                        orderBy: {
                            field: 'id',
                            order: 'asc'
                        }
                    },
                    isIndex: true,
                    showSelect: true,
                    select: true,
                    do: [],
                    tagField: {},
                    selectField: {},
                }
            }
        },
        mounted() {
@@ -299,30 +339,45 @@
            handleNodeClick(val, node, el) { //树的值
                this.selectTree = ''
                this.getNodeParent(node)
                this.selectTree = this.selectTree.replace(' - ','')
                this.selectTree = this.selectTree.replace(' - ', '')
                let data = this.selectTree.split(' - ')
                let data2 = ''
                for(let index = data.length - 1; index >= 0; index--){
                for (let index = data.length - 1; index >= 0; index--) {
                    data2 += " - " + data[index]
                }
                this.selectTree = data2.replace(' - ','')
                this.selectTree = data2.replace(' - ', '')
                this.selectsStandardMethodByFLSSM()
            },
            getNodeParent(val){
                if(val.parent!=null){
            getNodeParent(val) {
                if (val.parent != null) {
                    this.selectTree += ' - ' + val.label
                    this.getNodeParent(val.parent)
                }
            },
            remove(node, data) {
                this.$confirm("是否删除", "提示", {
                    type: "warning"
                }).then(res => {
                    const parent = node.parent;
                    const children = parent.data.children || parent.data;
                    const index = children.findIndex(d => d.id === data.id);
                    children.splice(index, 1);
                this.$confirm("是否删除该层级", "提示", {
                    type: "error"
                }).then(()=> {
                    this.treeLoad = true
                    this.selectTree = ''
                    this.getNodeParent(node)
                    this.selectTree = this.selectTree.replace(' - ', '')
                    let data = this.selectTree.split(' - ')
                    let data2 = ''
                    for (let index = data.length - 1; index >= 0; index--) {
                        data2 += " - " + data[index]
                    }
                    this.selectTree = data2.replace(' - ', '')
                    this.$axios.post(this.$api.standardTree.delStandardTree, {
                        tree: this.selectTree
                    }).then(res => {
                        if(res.code==201)return
                        this.$message.success('已删除')
                        this.selectStandardTreeList()
                        this.selectTree = ''
                        this.standardList = []
                        this.productList = []
                    })
                }).catch(e => {})
            },
            nodeOpen(data, node, el) {
@@ -388,16 +443,16 @@
                    this.standardEnum = data
                })
            },
            addStandardMethodList(){
            addStandardMethodList() {
                if (this.standardId == null || this.standardId == '') {
                    this.$message.error('标准方法未选择')
                    return
                }
                this.addLoad2 = true
                this.$axios.post(this.$api.standardTree.addStandardMethodList,{
                this.$axios.post(this.$api.standardTree.addStandardMethodList, {
                    standardId: this.standardId,
                    tree: this.selectTree
                }).then(res=>{
                }).then(res => {
                    this.addLoad2 = false
                    this.addStandardDia = false
                    this.$message.success('添加成功')
@@ -440,19 +495,25 @@
                    this.addLoad = false
                })
            },
            selectsStandardMethodByFLSSM(){
                this.standardListLoad = true
                this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM,{
            selectsStandardMethodByFLSSM() {
                this.tableLoad = true
                this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
                    tree: this.selectTree
                }).then(res=>{
                    this.standardListLoad = false
                    this.standardList = res.data
                }).then(res => {
                    this.tableLoad = false
                    this.standardList = res.data.standardMethodList
                    this.productList = res.data.standardProductList
                })
            },
            getPower() {
                let power = JSON.parse(sessionStorage.getItem('power'))
                let add = false
                let addStandardMethod = false
                let upStandardProduct = false
                let delStandardMethod = false
                let delStandardProduct = false
                let addStandardProduct = false
                let delStandardTree = false
                for (var i = 0; i < power.length; i++) {
                    if (power[i].menuMethod == 'addStandardTree') {
                        add = true
@@ -460,11 +521,115 @@
                    if (power[i].menuMethod == 'addStandardMethodList') {
                        addStandardMethod = true
                    }
                    if (power[i].menuMethod == 'upStandardProductList') {
                        upStandardProduct = true
                    }
                    if (power[i].menuMethod == 'delStandardMethodByFLSSM') {
                        delStandardMethod = true
                    }
                    if (power[i].menuMethod == 'delStandardProductByIds') {
                        delStandardProduct = true
                    }
                    if (power[i].menuMethod == 'addStandardProduct') {
                        addStandardProduct = true
                    }
                    if (power[i].menuMethod == 'delStandardTree') {
                        delStandardTree = true
                    }
                }
                this.addPower = add
                this.addStandardMethod = addStandardMethod
                this.upStandardProduct = upStandardProduct
                this.delStandardMethod = delStandardMethod
                this.delStandardProduct = delStandardProduct
                this.addStandardProduct = addStandardProduct
                this.delStandardTree = delStandardTree
            },
            upStandardProductList(value, index) {
                this.$axios.post(this.$api.standardTree.upStandardProductList, {
                    id: index,
                    ask: value
                }, {
                    headers: {
                        'Content-Type': 'application/json'
                    }
                }).then(res => {
                    if (res.code == 201) {
                        this.$message.error('未保存')
                        return
                    }
                    this.$message.success('已保存')
                })
            },
            delStandardMethodByFLSSM(id) {
                this.$confirm('是否删除当前数据?', "警告", {
                    confirmButtonText: "确定",
                    cancelButtonText: "取消",
                    type: "warning"
                }).then(() => {
                    this.tableLoad = true
                    this.$axios.post(this.$api.standardTree.delStandardMethodByFLSSM, {
                        id: id
                    }).then(res => {
                        if (res.code == 201) {
                            return
                        }
                        this.$message.success('已删除')
                        this.selectsStandardMethodByFLSSM()
                    })
                }).catch(() => {})
            },
            handleSelectionChange(val) {
                this.selects = []
                val.forEach(a => {
                    this.selects.push(a.id)
                })
            },
            delStandardProductByIds() {
                if(this.selects.length == 0){
                    this.$message.error('未选中数据')
                    return
                }
                this.$confirm('是否删除当前选中 '+this.selects.length+' 条数据?', "警告", {
                    confirmButtonText: "确定",
                    cancelButtonText: "取消",
                    type: "warning"
                }).then(() => {
                    this.tableLoad = true
                    this.$axios.post(this.$api.standardTree.delStandardProductByIds, {
                        ids: JSON.stringify(this.selects)
                    }).then(res => {
                        if (res.code == 201) {
                            return
                        }
                        this.$message.success('已删除')
                        this.selectsStandardMethodByFLSSM()
                    })
                }).catch(() => {})
            },
            addStandardProductDo(){
                let selects = this.$refs.ValueTable.multipleSelection
                if(selects.length == 0){
                    this.$message.error('未选择数据')
                    return
                }
                let select = []
                selects.forEach(a=>{
                    select.push(a.id)
                })
                this.tableLoad = true
                this.$axios.post(this.$api.standardTree.addStandardProduct,{
                    ids: JSON.stringify(select),
                    tree: this.selectTree
                }).then(res=>{
                    if (res.code == 201) {
                        return
                    }
                    this.$message.success('添加成功')
                    this.selectsStandardMethodByFLSSM()
                })
                this.addProductDia = false
            }
        }
    }
</script>
src/main.js
@@ -13,7 +13,7 @@
//本地
Vue.prototype.LOCATIONVUE = "http://127.0.0.1:80";
const javaApi = 'http://192.168.0.133:8003';
const javaApi = 'http://127.0.0.1:8001';
//胜云服务器
// Vue.prototype.LOCATIONVUE = "http://syxt.shxiao2.cn";
// const javaApi = 'http://122.114.52.69:8001';