admin
2024-11-26 dea0a32cf795a33bf4e4cbdb8a3cbae2897ba698
-物料信息 工位信息
已添加17个文件
已修改2个文件
1910 ■■■■■ 文件已修改
billion-generator/src/main/resources/vm/vue/index.vue.vm 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/controller/BsLocationInfoController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/controller/BsMaterialInfoController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/domain/BsLocationInfo.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/domain/BsMaterialInfo.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/mapper/BsLocationInfoMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/mapper/BsMaterialInfoMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/IBsLocationInfoService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/IBsMaterialInfoService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/impl/BsLocationInfoServiceImpl.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/java/com/billion/main/bs/service/impl/BsMaterialInfoServiceImpl.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/resources/mapper/bs/BsLocationInfoMapper.xml 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-main/src/main/resources/mapper/bs/BsMaterialInfoMapper.xml 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/api/main/bs/locationInfo.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/api/main/bs/materialInfo.js 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/bs/locationInfo/index.vue 300 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/bs/materialInfo/index.vue 410 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/bs/routeInfo/ProductSelector.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-ui/src/views/main/bs/routeInfo/index.vue 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
billion-generator/src/main/resources/vm/vue/index.vue.vm
@@ -145,7 +145,7 @@
        </template>
      </el-table-column>
#elseif($column.list && "" != $javaField)
      <el-table-column show-overflow-tooltip="true" label="${comment}" align="center" prop="${javaField}" />
      <el-table-column :show-overflow-tooltip="true" label="${comment}" align="center" prop="${javaField}" />
#end
#end
##      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
billion-main/src/main/java/com/billion/main/bs/controller/BsLocationInfoController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.billion.main.bs.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.billion.common.annotation.Log;
import com.billion.common.core.controller.BaseController;
import com.billion.common.core.domain.AjaxResult;
import com.billion.common.enums.BusinessType;
import com.billion.main.bs.domain.BsLocationInfo;
import com.billion.main.bs.service.IBsLocationInfoService;
import com.billion.common.utils.poi.ExcelUtil;
import com.billion.common.core.page.TableDataInfo;
/**
 * å·¥ä½ä¿¡æ¯Controller
 *
 * @author Billion-Yi
 * @date 2024-11-26
 */
@RestController
@RequestMapping("/bs/locationInfo")
public class BsLocationInfoController extends BaseController
{
    @Autowired
    private IBsLocationInfoService bsLocationInfoService;
    /**
     * æŸ¥è¯¢å·¥ä½ä¿¡æ¯åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('bs:locationInfo:list')")
    @GetMapping("/list")
    public TableDataInfo list(BsLocationInfo bsLocationInfo)
    {
        startPage();
        List<BsLocationInfo> list = bsLocationInfoService.selectBsLocationInfoList(bsLocationInfo);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºå·¥ä½ä¿¡æ¯åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('bs:locationInfo:export')")
    @Log(title = "工位信息", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, BsLocationInfo bsLocationInfo)
    {
        List<BsLocationInfo> list = bsLocationInfoService.selectBsLocationInfoList(bsLocationInfo);
        ExcelUtil<BsLocationInfo> util = new ExcelUtil<BsLocationInfo>(BsLocationInfo.class);
        util.exportExcel(response, list, "工位信息数据");
    }
    /**
     * èŽ·å–å·¥ä½ä¿¡æ¯è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('bs:locationInfo:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(bsLocationInfoService.selectBsLocationInfoById(id));
    }
    /**
     * æ–°å¢žå·¥ä½ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('bs:locationInfo:add')")
    @Log(title = "工位信息", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody BsLocationInfo bsLocationInfo)
    {
        return toAjax(bsLocationInfoService.insertBsLocationInfo(bsLocationInfo));
    }
    /**
     * ä¿®æ”¹å·¥ä½ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('bs:locationInfo:edit')")
    @Log(title = "工位信息", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody BsLocationInfo bsLocationInfo)
    {
        return toAjax(bsLocationInfoService.updateBsLocationInfo(bsLocationInfo));
    }
    /**
     * åˆ é™¤å·¥ä½ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('bs:locationInfo:remove')")
    @Log(title = "工位信息", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(bsLocationInfoService.deleteBsLocationInfoByIds(ids));
    }
}
billion-main/src/main/java/com/billion/main/bs/controller/BsMaterialInfoController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
package com.billion.main.bs.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.billion.common.annotation.Log;
import com.billion.common.core.controller.BaseController;
import com.billion.common.core.domain.AjaxResult;
import com.billion.common.enums.BusinessType;
import com.billion.main.bs.domain.BsMaterialInfo;
import com.billion.main.bs.service.IBsMaterialInfoService;
import com.billion.common.utils.poi.ExcelUtil;
import com.billion.common.core.page.TableDataInfo;
/**
 * ç‰©æ–™ä¿¡æ¯Controller
 *
 * @author Billion-Yi
 * @date 2024-11-26
 */
@RestController
@RequestMapping("/bs/materialInfo")
public class BsMaterialInfoController extends BaseController
{
    @Autowired
    private IBsMaterialInfoService bsMaterialInfoService;
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('bs:materialInfo:list')")
    @GetMapping("/list")
    public TableDataInfo list(BsMaterialInfo bsMaterialInfo)
    {
        startPage();
        List<BsMaterialInfo> list = bsMaterialInfoService.selectBsMaterialInfoList(bsMaterialInfo);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºç‰©æ–™ä¿¡æ¯åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('bs:materialInfo:export')")
    @Log(title = "物料信息", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, BsMaterialInfo bsMaterialInfo)
    {
        List<BsMaterialInfo> list = bsMaterialInfoService.selectBsMaterialInfoList(bsMaterialInfo);
        ExcelUtil<BsMaterialInfo> util = new ExcelUtil<BsMaterialInfo>(BsMaterialInfo.class);
        util.exportExcel(response, list, "物料信息数据");
    }
    /**
     * èŽ·å–ç‰©æ–™ä¿¡æ¯è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('bs:materialInfo:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(bsMaterialInfoService.selectBsMaterialInfoById(id));
    }
    /**
     * æ–°å¢žç‰©æ–™ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('bs:materialInfo:add')")
    @Log(title = "物料信息", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody BsMaterialInfo bsMaterialInfo)
    {
        return toAjax(bsMaterialInfoService.insertBsMaterialInfo(bsMaterialInfo));
    }
    /**
     * ä¿®æ”¹ç‰©æ–™ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('bs:materialInfo:edit')")
    @Log(title = "物料信息", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody BsMaterialInfo bsMaterialInfo)
    {
        return toAjax(bsMaterialInfoService.updateBsMaterialInfo(bsMaterialInfo));
    }
    /**
     * åˆ é™¤ç‰©æ–™ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('bs:materialInfo:remove')")
    @Log(title = "物料信息", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(bsMaterialInfoService.deleteBsMaterialInfoByIds(ids));
    }
}
billion-main/src/main/java/com/billion/main/bs/domain/BsLocationInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package com.billion.main.bs.domain;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.billion.common.annotation.Excel;
import com.billion.main.common.BaseEntity;
/**
 * å·¥ä½ä¿¡æ¯å¯¹è±¡ bs_location_info
 *
 * @author Billion-Yi
 * @date 2024-11-26
 */
@Data
public class BsLocationInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** å·¥ä½ç¼–号 */
    @Excel(name = "工位编号")
    private String locationCode;
    /** å·¥ä½åç§° */
    @Excel(name = "工位名称")
    private String locationName;
    /** å·¥ä½ç±»åž‹ï¼ˆ1自动2半自动3手动) */
    @Excel(name = "工位类型", readConverterExp = "1=自动2半自动3手动")
    private String locationType;
    /** äº§çº¿ç¼–号 */
    @Excel(name = "产线编号")
    private String lineCode;
    /** å¤‡æ³¨ */
    @Excel(name = "备注")
    private String remarks;
    /** é€»è¾‘删除 */
    private String delFlag;
}
billion-main/src/main/java/com/billion/main/bs/domain/BsMaterialInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package com.billion.main.bs.domain;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.billion.common.annotation.Excel;
import com.billion.main.common.BaseEntity;
/**
 * ç‰©æ–™ä¿¡æ¯å¯¹è±¡ bs_material_info
 *
 * @author Billion-Yi
 * @date 2024-11-26
 */
@Data
public class BsMaterialInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** ä¸»é”®id */
    private Long id;
    /** ç‰©æ–™ç¼–号 */
    @Excel(name = "物料编号")
    private String materialCode;
    /** ç‰©æ–™åç§° */
    @Excel(name = "物料名称")
    private String materialName;
    /** è§†å›¾ */
    @Excel(name = "视图")
    private String materialView;
    /** ç§ç±» */
    @Excel(name = "种类")
    private String typeZ;
    /** ç±»åž‹ */
    @Excel(name = "类型")
    private String typeL;
    /** å•位 */
    @Excel(name = "单位")
    private String unit;
    /** ç‰ˆæœ¬ */
    @Excel(name = "版本")
    private String version;
    /** çŠ¶æ€ */
    @Excel(name = "状态")
    private String status;
    /** åނ商 */
    @Excel(name = "厂商")
    private String supplier;
    /** æ•°æ®æ¥æº */
    @Excel(name = "数据来源")
    private String dataSource;
    /** é€»è¾‘删除 */
    private String delFlag;
    /** å¤‡æ³¨ */
    @Excel(name = "备注")
    private String remark;
}
billion-main/src/main/java/com/billion/main/bs/mapper/BsLocationInfoMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.billion.main.bs.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.billion.main.bs.domain.BsLocationInfo;
/**
 * å·¥ä½ä¿¡æ¯Mapper接口
 *
 * @author Billion-Yi
 * @date 2024-11-26
 */
public interface BsLocationInfoMapper extends BaseMapper<BsLocationInfo>
{
    /**
     * æŸ¥è¯¢å·¥ä½ä¿¡æ¯
     *
     * @param id å·¥ä½ä¿¡æ¯ä¸»é”®
     * @return å·¥ä½ä¿¡æ¯
     */
    public BsLocationInfo selectBsLocationInfoById(Long id);
    /**
     * æŸ¥è¯¢å·¥ä½ä¿¡æ¯åˆ—表
     *
     * @param bsLocationInfo å·¥ä½ä¿¡æ¯
     * @return å·¥ä½ä¿¡æ¯é›†åˆ
     */
    public List<BsLocationInfo> selectBsLocationInfoList(BsLocationInfo bsLocationInfo);
    /**
     * æ–°å¢žå·¥ä½ä¿¡æ¯
     *
     * @param bsLocationInfo å·¥ä½ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int insertBsLocationInfo(BsLocationInfo bsLocationInfo);
    /**
     * ä¿®æ”¹å·¥ä½ä¿¡æ¯
     *
     * @param bsLocationInfo å·¥ä½ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int updateBsLocationInfo(BsLocationInfo bsLocationInfo);
    /**
     * åˆ é™¤å·¥ä½ä¿¡æ¯
     *
     * @param id å·¥ä½ä¿¡æ¯ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteBsLocationInfoById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤å·¥ä½ä¿¡æ¯
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteBsLocationInfoByIds(Long[] ids);
}
billion-main/src/main/java/com/billion/main/bs/mapper/BsMaterialInfoMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.billion.main.bs.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.billion.main.bs.domain.BsMaterialInfo;
/**
 * ç‰©æ–™ä¿¡æ¯Mapper接口
 *
 * @author Billion-Yi
 * @date 2024-11-26
 */
public interface BsMaterialInfoMapper extends BaseMapper<BsMaterialInfo>
{
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç‰©æ–™ä¿¡æ¯
     */
    public BsMaterialInfo selectBsMaterialInfoById(Long id);
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç‰©æ–™ä¿¡æ¯é›†åˆ
     */
    public List<BsMaterialInfo> selectBsMaterialInfoList(BsMaterialInfo bsMaterialInfo);
    /**
     * æ–°å¢žç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int insertBsMaterialInfo(BsMaterialInfo bsMaterialInfo);
    /**
     * ä¿®æ”¹ç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int updateBsMaterialInfo(BsMaterialInfo bsMaterialInfo);
    /**
     * åˆ é™¤ç‰©æ–™ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteBsMaterialInfoById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤ç‰©æ–™ä¿¡æ¯
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteBsMaterialInfoByIds(Long[] ids);
}
billion-main/src/main/java/com/billion/main/bs/service/IBsLocationInfoService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.billion.main.bs.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.billion.main.bs.domain.BsLocationInfo;
/**
 * å·¥ä½ä¿¡æ¯Service接口
 *
 * @author Billion-Yi
 * @date 2024-11-26
 */
public interface IBsLocationInfoService extends IService<BsLocationInfo>
{
    /**
     * æŸ¥è¯¢å·¥ä½ä¿¡æ¯
     *
     * @param id å·¥ä½ä¿¡æ¯ä¸»é”®
     * @return å·¥ä½ä¿¡æ¯
     */
    public BsLocationInfo selectBsLocationInfoById(Long id);
    /**
     * æŸ¥è¯¢å·¥ä½ä¿¡æ¯åˆ—表
     *
     * @param bsLocationInfo å·¥ä½ä¿¡æ¯
     * @return å·¥ä½ä¿¡æ¯é›†åˆ
     */
    public List<BsLocationInfo> selectBsLocationInfoList(BsLocationInfo bsLocationInfo);
    /**
     * æ–°å¢žå·¥ä½ä¿¡æ¯
     *
     * @param bsLocationInfo å·¥ä½ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int insertBsLocationInfo(BsLocationInfo bsLocationInfo);
    /**
     * ä¿®æ”¹å·¥ä½ä¿¡æ¯
     *
     * @param bsLocationInfo å·¥ä½ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int updateBsLocationInfo(BsLocationInfo bsLocationInfo);
    /**
     * æ‰¹é‡åˆ é™¤å·¥ä½ä¿¡æ¯
     *
     * @param ids éœ€è¦åˆ é™¤çš„工位信息主键集合
     * @return ç»“æžœ
     */
    public int deleteBsLocationInfoByIds(Long[] ids);
    /**
     * åˆ é™¤å·¥ä½ä¿¡æ¯ä¿¡æ¯
     *
     * @param id å·¥ä½ä¿¡æ¯ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteBsLocationInfoById(Long id);
}
billion-main/src/main/java/com/billion/main/bs/service/IBsMaterialInfoService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.billion.main.bs.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.billion.main.bs.domain.BsMaterialInfo;
/**
 * ç‰©æ–™ä¿¡æ¯Service接口
 *
 * @author Billion-Yi
 * @date 2024-11-26
 */
public interface IBsMaterialInfoService extends IService<BsMaterialInfo>
{
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç‰©æ–™ä¿¡æ¯
     */
    public BsMaterialInfo selectBsMaterialInfoById(Long id);
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç‰©æ–™ä¿¡æ¯é›†åˆ
     */
    public List<BsMaterialInfo> selectBsMaterialInfoList(BsMaterialInfo bsMaterialInfo);
    /**
     * æ–°å¢žç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int insertBsMaterialInfo(BsMaterialInfo bsMaterialInfo);
    /**
     * ä¿®æ”¹ç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    public int updateBsMaterialInfo(BsMaterialInfo bsMaterialInfo);
    /**
     * æ‰¹é‡åˆ é™¤ç‰©æ–™ä¿¡æ¯
     *
     * @param ids éœ€è¦åˆ é™¤çš„物料信息主键集合
     * @return ç»“æžœ
     */
    public int deleteBsMaterialInfoByIds(Long[] ids);
    /**
     * åˆ é™¤ç‰©æ–™ä¿¡æ¯ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç»“æžœ
     */
    public int deleteBsMaterialInfoById(Long id);
}
billion-main/src/main/java/com/billion/main/bs/service/impl/BsLocationInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.billion.main.bs.service.impl;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.billion.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.billion.main.bs.mapper.BsLocationInfoMapper;
import com.billion.main.bs.domain.BsLocationInfo;
import com.billion.main.bs.service.IBsLocationInfoService;
/**
 * å·¥ä½ä¿¡æ¯Service业务层处理
 *
 * @author Billion-Yi
 * @date 2024-11-26
 */
@Service
public class BsLocationInfoServiceImpl extends ServiceImpl<BsLocationInfoMapper, BsLocationInfo> implements IBsLocationInfoService
{
    @Autowired
    private BsLocationInfoMapper bsLocationInfoMapper;
    /**
     * æŸ¥è¯¢å·¥ä½ä¿¡æ¯
     *
     * @param id å·¥ä½ä¿¡æ¯ä¸»é”®
     * @return å·¥ä½ä¿¡æ¯
     */
    @Override
    public BsLocationInfo selectBsLocationInfoById(Long id)
    {
        return bsLocationInfoMapper.selectBsLocationInfoById(id);
    }
    /**
     * æŸ¥è¯¢å·¥ä½ä¿¡æ¯åˆ—表
     *
     * @param bsLocationInfo å·¥ä½ä¿¡æ¯
     * @return å·¥ä½ä¿¡æ¯
     */
    @Override
    public List<BsLocationInfo> selectBsLocationInfoList(BsLocationInfo bsLocationInfo)
    {
        return bsLocationInfoMapper.selectBsLocationInfoList(bsLocationInfo);
    }
    /**
     * æ–°å¢žå·¥ä½ä¿¡æ¯
     *
     * @param bsLocationInfo å·¥ä½ä¿¡æ¯
     * @return ç»“æžœ
     */
    @Override
    public int insertBsLocationInfo(BsLocationInfo bsLocationInfo)
    {
        bsLocationInfo.setCreateTime(DateUtils.getNowDate());
        return bsLocationInfoMapper.insertBsLocationInfo(bsLocationInfo);
    }
    /**
     * ä¿®æ”¹å·¥ä½ä¿¡æ¯
     *
     * @param bsLocationInfo å·¥ä½ä¿¡æ¯
     * @return ç»“æžœ
     */
    @Override
    public int updateBsLocationInfo(BsLocationInfo bsLocationInfo)
    {
        bsLocationInfo.setUpdateTime(DateUtils.getNowDate());
        return bsLocationInfoMapper.updateBsLocationInfo(bsLocationInfo);
    }
    /**
     * æ‰¹é‡åˆ é™¤å·¥ä½ä¿¡æ¯
     *
     * @param ids éœ€è¦åˆ é™¤çš„工位信息主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsLocationInfoByIds(Long[] ids)
    {
        return bsLocationInfoMapper.deleteBsLocationInfoByIds(ids);
    }
    /**
     * åˆ é™¤å·¥ä½ä¿¡æ¯ä¿¡æ¯
     *
     * @param id å·¥ä½ä¿¡æ¯ä¸»é”®
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsLocationInfoById(Long id)
    {
        return bsLocationInfoMapper.deleteBsLocationInfoById(id);
    }
}
billion-main/src/main/java/com/billion/main/bs/service/impl/BsMaterialInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.billion.main.bs.service.impl;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.billion.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.billion.main.bs.mapper.BsMaterialInfoMapper;
import com.billion.main.bs.domain.BsMaterialInfo;
import com.billion.main.bs.service.IBsMaterialInfoService;
/**
 * ç‰©æ–™ä¿¡æ¯Service业务层处理
 *
 * @author Billion-Yi
 * @date 2024-11-26
 */
@Service
public class BsMaterialInfoServiceImpl extends ServiceImpl<BsMaterialInfoMapper, BsMaterialInfo> implements IBsMaterialInfoService
{
    @Autowired
    private BsMaterialInfoMapper bsMaterialInfoMapper;
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç‰©æ–™ä¿¡æ¯
     */
    @Override
    public BsMaterialInfo selectBsMaterialInfoById(Long id)
    {
        return bsMaterialInfoMapper.selectBsMaterialInfoById(id);
    }
    /**
     * æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç‰©æ–™ä¿¡æ¯
     */
    @Override
    public List<BsMaterialInfo> selectBsMaterialInfoList(BsMaterialInfo bsMaterialInfo)
    {
        return bsMaterialInfoMapper.selectBsMaterialInfoList(bsMaterialInfo);
    }
    /**
     * æ–°å¢žç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    @Override
    public int insertBsMaterialInfo(BsMaterialInfo bsMaterialInfo)
    {
        bsMaterialInfo.setCreateTime(DateUtils.getNowDate());
        return bsMaterialInfoMapper.insertBsMaterialInfo(bsMaterialInfo);
    }
    /**
     * ä¿®æ”¹ç‰©æ–™ä¿¡æ¯
     *
     * @param bsMaterialInfo ç‰©æ–™ä¿¡æ¯
     * @return ç»“æžœ
     */
    @Override
    public int updateBsMaterialInfo(BsMaterialInfo bsMaterialInfo)
    {
        bsMaterialInfo.setUpdateTime(DateUtils.getNowDate());
        return bsMaterialInfoMapper.updateBsMaterialInfo(bsMaterialInfo);
    }
    /**
     * æ‰¹é‡åˆ é™¤ç‰©æ–™ä¿¡æ¯
     *
     * @param ids éœ€è¦åˆ é™¤çš„物料信息主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsMaterialInfoByIds(Long[] ids)
    {
        return bsMaterialInfoMapper.deleteBsMaterialInfoByIds(ids);
    }
    /**
     * åˆ é™¤ç‰©æ–™ä¿¡æ¯ä¿¡æ¯
     *
     * @param id ç‰©æ–™ä¿¡æ¯ä¸»é”®
     * @return ç»“æžœ
     */
    @Override
    public int deleteBsMaterialInfoById(Long id)
    {
        return bsMaterialInfoMapper.deleteBsMaterialInfoById(id);
    }
}
billion-main/src/main/resources/mapper/bs/BsLocationInfoMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.billion.main.bs.mapper.BsLocationInfoMapper">
    <resultMap type="BsLocationInfo" id="BsLocationInfoResult">
        <result property="id"    column="id"    />
        <result property="locationCode"    column="location_code"    />
        <result property="locationName"    column="location_name"    />
        <result property="locationType"    column="location_type"    />
        <result property="lineCode"    column="line_code"    />
        <result property="remarks"    column="remarks"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
        <result property="delFlag"    column="del_flag"    />
    </resultMap>
    <sql id="selectBsLocationInfoVo">
        select id, location_code, location_name, location_type, line_code, remarks, create_by, create_time, update_by, update_time, del_flag from bs_location_info
    </sql>
    <select id="selectBsLocationInfoList" parameterType="BsLocationInfo" resultMap="BsLocationInfoResult">
        <include refid="selectBsLocationInfoVo"/>
        <where>
            <if test="locationCode != null  and locationCode != ''"> and location_code like concat('%', #{locationCode}, '%')</if>
            <if test="locationName != null  and locationName != ''"> and location_name like concat('%', #{locationName}, '%')</if>
            <if test="locationType != null  and locationType != ''"> and location_type = #{locationType}</if>
            <if test="lineCode != null  and lineCode != ''"> and line_code like concat('%', #{lineCode}, '%')</if>
        </where>
    </select>
    <select id="selectBsLocationInfoById" parameterType="Long" resultMap="BsLocationInfoResult">
        <include refid="selectBsLocationInfoVo"/>
        where id = #{id}
    </select>
    <insert id="insertBsLocationInfo" parameterType="BsLocationInfo">
        insert into bs_location_info
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="locationCode != null">location_code,</if>
            <if test="locationName != null">location_name,</if>
            <if test="locationType != null">location_type,</if>
            <if test="lineCode != null">line_code,</if>
            <if test="remarks != null">remarks,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="delFlag != null">del_flag,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="locationCode != null">#{locationCode},</if>
            <if test="locationName != null">#{locationName},</if>
            <if test="locationType != null">#{locationType},</if>
            <if test="lineCode != null">#{lineCode},</if>
            <if test="remarks != null">#{remarks},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="delFlag != null">#{delFlag},</if>
         </trim>
    </insert>
    <update id="updateBsLocationInfo" parameterType="BsLocationInfo">
        update bs_location_info
        <trim prefix="SET" suffixOverrides=",">
            <if test="locationCode != null">location_code = #{locationCode},</if>
            <if test="locationName != null">location_name = #{locationName},</if>
            <if test="locationType != null">location_type = #{locationType},</if>
            <if test="lineCode != null">line_code = #{lineCode},</if>
            <if test="remarks != null">remarks = #{remarks},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteBsLocationInfoById" parameterType="Long">
        delete from bs_location_info where id = #{id}
    </delete>
    <delete id="deleteBsLocationInfoByIds" parameterType="String">
        delete from bs_location_info where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
billion-main/src/main/resources/mapper/bs/BsMaterialInfoMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.billion.main.bs.mapper.BsMaterialInfoMapper">
    <resultMap type="BsMaterialInfo" id="BsMaterialInfoResult">
        <result property="id"    column="id"    />
        <result property="materialCode"    column="material_code"    />
        <result property="materialName"    column="material_name"    />
        <result property="materialView"    column="material_view"    />
        <result property="typeZ"    column="type_z"    />
        <result property="typeL"    column="type_l"    />
        <result property="unit"    column="unit"    />
        <result property="version"    column="version"    />
        <result property="status"    column="status"    />
        <result property="supplier"    column="supplier"    />
        <result property="remark"    column="remark"    />
        <result property="dataSource"    column="data_source"    />
        <result property="createBy"    column="create_by"    />
        <result property="createTime"    column="create_time"    />
        <result property="updateBy"    column="update_by"    />
        <result property="updateTime"    column="update_time"    />
        <result property="delFlag"    column="del_flag"    />
    </resultMap>
    <sql id="selectBsMaterialInfoVo">
        select id, material_code, material_name, material_view, type_z, type_l, unit, version, status, supplier, remark, data_source, create_by, create_time, update_by, update_time, del_flag from bs_material_info
    </sql>
    <select id="selectBsMaterialInfoList" parameterType="BsMaterialInfo" resultMap="BsMaterialInfoResult">
        <include refid="selectBsMaterialInfoVo"/>
        <where>
            <if test="materialCode != null  and materialCode != ''"> and material_code like concat('%', #{materialCode}, '%')</if>
            <if test="materialName != null  and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if>
            <if test="materialView != null  and materialView != ''"> and material_view = #{materialView}</if>
            <if test="typeZ != null  and typeZ != ''"> and type_z = #{typeZ}</if>
            <if test="typeL != null  and typeL != ''"> and type_l = #{typeL}</if>
            <if test="unit != null  and unit != ''"> and unit = #{unit}</if>
            <if test="status != null  and status != ''"> and status = #{status}</if>
        </where>
    </select>
    <select id="selectBsMaterialInfoById" parameterType="Long" resultMap="BsMaterialInfoResult">
        <include refid="selectBsMaterialInfoVo"/>
        where id = #{id}
    </select>
    <insert id="insertBsMaterialInfo" parameterType="BsMaterialInfo">
        insert into bs_material_info
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">id,</if>
            <if test="materialCode != null and materialCode != ''">material_code,</if>
            <if test="materialName != null and materialName != ''">material_name,</if>
            <if test="materialView != null">material_view,</if>
            <if test="typeZ != null">type_z,</if>
            <if test="typeL != null">type_l,</if>
            <if test="unit != null">unit,</if>
            <if test="version != null">version,</if>
            <if test="status != null">status,</if>
            <if test="supplier != null">supplier,</if>
            <if test="remark != null">remark,</if>
            <if test="dataSource != null">data_source,</if>
            <if test="createBy != null">create_by,</if>
            <if test="createTime != null">create_time,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="delFlag != null">del_flag,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">#{id},</if>
            <if test="materialCode != null and materialCode != ''">#{materialCode},</if>
            <if test="materialName != null and materialName != ''">#{materialName},</if>
            <if test="materialView != null">#{materialView},</if>
            <if test="typeZ != null">#{typeZ},</if>
            <if test="typeL != null">#{typeL},</if>
            <if test="unit != null">#{unit},</if>
            <if test="version != null">#{version},</if>
            <if test="status != null">#{status},</if>
            <if test="supplier != null">#{supplier},</if>
            <if test="remark != null">#{remark},</if>
            <if test="dataSource != null">#{dataSource},</if>
            <if test="createBy != null">#{createBy},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="delFlag != null">#{delFlag},</if>
         </trim>
    </insert>
    <update id="updateBsMaterialInfo" parameterType="BsMaterialInfo">
        update bs_material_info
        <trim prefix="SET" suffixOverrides=",">
            <if test="materialCode != null and materialCode != ''">material_code = #{materialCode},</if>
            <if test="materialName != null and materialName != ''">material_name = #{materialName},</if>
            <if test="materialView != null">material_view = #{materialView},</if>
            <if test="typeZ != null">type_z = #{typeZ},</if>
            <if test="typeL != null">type_l = #{typeL},</if>
            <if test="unit != null">unit = #{unit},</if>
            <if test="version != null">version = #{version},</if>
            <if test="status != null">status = #{status},</if>
            <if test="supplier != null">supplier = #{supplier},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="dataSource != null">data_source = #{dataSource},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteBsMaterialInfoById" parameterType="Long">
        delete from bs_material_info where id = #{id}
    </delete>
    <delete id="deleteBsMaterialInfoByIds" parameterType="String">
        delete from bs_material_info where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
billion-ui/src/api/main/bs/locationInfo.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢å·¥ä½ä¿¡æ¯åˆ—表
export function listLocationInfo(query) {
  return request({
    url: '/bs/locationInfo/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢å·¥ä½ä¿¡æ¯è¯¦ç»†
export function getLocationInfo(id) {
  return request({
    url: '/bs/locationInfo/' + id,
    method: 'get'
  })
}
// æ–°å¢žå·¥ä½ä¿¡æ¯
export function addLocationInfo(data) {
  return request({
    url: '/bs/locationInfo',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹å·¥ä½ä¿¡æ¯
export function updateLocationInfo(data) {
  return request({
    url: '/bs/locationInfo',
    method: 'put',
    data: data
  })
}
// åˆ é™¤å·¥ä½ä¿¡æ¯
export function delLocationInfo(id) {
  return request({
    url: '/bs/locationInfo/' + id,
    method: 'delete'
  })
}
billion-ui/src/api/main/bs/materialInfo.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
import request from '@/utils/request'
// æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表
export function listMaterialInfo(query) {
  return request({
    url: '/bs/materialInfo/list',
    method: 'get',
    params: query
  })
}
// æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯è¯¦ç»†
export function getMaterialInfo(id) {
  return request({
    url: '/bs/materialInfo/' + id,
    method: 'get'
  })
}
// æ–°å¢žç‰©æ–™ä¿¡æ¯
export function addMaterialInfo(data) {
  return request({
    url: '/bs/materialInfo',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹ç‰©æ–™ä¿¡æ¯
export function updateMaterialInfo(data) {
  return request({
    url: '/bs/materialInfo',
    method: 'put',
    data: data
  })
}
// åˆ é™¤ç‰©æ–™ä¿¡æ¯
export function delMaterialInfo(id) {
  return request({
    url: '/bs/materialInfo/' + id,
    method: 'delete'
  })
}
billion-ui/src/views/main/bs/locationInfo/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,300 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="工位编号" prop="locationCode">
        <el-input
          v-model="queryParams.locationCode"
          placeholder="请输入工位编号"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="工位名称" prop="locationName">
        <el-input
          v-model="queryParams.locationName"
          placeholder="请输入工位名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="工位类型" prop="locationType">
        <el-select v-model="queryParams.locationType" placeholder="请选择工位类型" clearable>
          <el-option
            v-for="dict in dict.type.location_type"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        </el-select>
      </el-form-item>
<!--      <el-form-item label="产线编号" prop="lineCode">-->
<!--        <el-input-->
<!--          v-model="queryParams.lineCode"-->
<!--          placeholder="请输入产线编号"-->
<!--          clearable-->
<!--          @keyup.enter.native="handleQuery"-->
<!--        />-->
<!--      </el-form-item>-->
      <el-form-item style="float: right">
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['bs:locationInfo:add']"
        >新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['bs:locationInfo:edit']"
        >修改</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['bs:locationInfo:remove']"
        >删除</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['bs:locationInfo:export']"
        >导出</el-button>
      </el-col>
    </el-row>
    <el-table border v-loading="loading" :data="locationInfoList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column show-overflow-tooltip="true" label="工位编号" align="center" prop="locationCode" />
      <el-table-column show-overflow-tooltip="true" label="工位名称" align="center" prop="locationName" />
      <el-table-column label="工位类型" align="center" prop="locationType">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.location_type" :value="scope.row.locationType"/>
        </template>
      </el-table-column>
      <el-table-column show-overflow-tooltip="true" label="产线编号" align="center" prop="lineCode" />
      <el-table-column show-overflow-tooltip="true" label="备注" align="center" prop="remarks" />
      <el-table-column show-overflow-tooltip="true" label="创建用户" align="center" prop="createBy" />
      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
      </el-table-column>
      <el-table-column show-overflow-tooltip="true" label="更改用户" align="center" prop="updateBy" />
      <el-table-column label="更改时间" align="center" prop="updateTime" width="180">
      </el-table-column>
    </el-table>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <!-- æ·»åŠ æˆ–ä¿®æ”¹å·¥ä½ä¿¡æ¯å¯¹è¯æ¡† -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="工位编号" prop="locationCode">
          <el-input v-model="form.locationCode" placeholder="请输入工位编号" />
        </el-form-item>
        <el-form-item label="工位名称" prop="locationName">
          <el-input v-model="form.locationName" placeholder="请输入工位名称" />
        </el-form-item>
        <el-form-item label="工位类型" prop="locationType">
          <el-select style="width: 100%" v-model="form.locationType" placeholder="请选择工位类型">
            <el-option
              v-for="dict in dict.type.location_type"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="产线编号" prop="lineCode">
          <el-input v-model="form.lineCode" placeholder="请输入产线编号" />
        </el-form-item>
        <el-form-item label="备注" prop="remarks">
          <el-input v-model="form.remarks" placeholder="请输入备注" />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">ç¡® å®š</el-button>
        <el-button @click="cancel">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { listLocationInfo, getLocationInfo, delLocationInfo, addLocationInfo, updateLocationInfo } from "@/api/main/bs/locationInfo";
export default {
  name: "LocationInfo",
  dicts: ['location_type'],
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•个禁用
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      // å·¥ä½ä¿¡æ¯è¡¨æ ¼æ•°æ®
      locationInfoList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        locationCode: null,
        locationName: null,
        locationType: null,
        lineCode: null,
      },
      // è¡¨å•参数
      form: {},
      // è¡¨å•校验
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    /** æŸ¥è¯¢å·¥ä½ä¿¡æ¯åˆ—表 */
    getList() {
      this.loading = true;
      listLocationInfo(this.queryParams).then(response => {
        this.locationInfoList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•重置
    reset() {
      this.form = {
        id: null,
        locationCode: null,
        locationName: null,
        locationType: null,
        lineCode: null,
        remarks: null,
        createBy: null,
        createTime: null,
        updateBy: null,
        updateTime: null,
        delFlag: null
      };
      this.resetForm("form");
    },
    /** æœç´¢æŒ‰é’®æ“ä½œ */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** é‡ç½®æŒ‰é’®æ“ä½œ */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // å¤šé€‰æ¡†é€‰ä¸­æ•°æ®
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id)
      this.single = selection.length!==1
      this.multiple = !selection.length
    },
    /** æ–°å¢žæŒ‰é’®æ“ä½œ */
    handleAdd() {
      this.reset();
      this.open = true;
      this.title = "添加工位信息";
    },
    /** ä¿®æ”¹æŒ‰é’®æ“ä½œ */
    handleUpdate(row) {
      this.reset();
      const id = row.id || this.ids
      getLocationInfo(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.title = "修改工位信息";
      });
    },
    /** æäº¤æŒ‰é’® */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.id != null) {
            updateLocationInfo(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addLocationInfo(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除').then(function() {
        return delLocationInfo(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('bs/locationInfo/export', {
        ...this.queryParams
      }, `locationInfo_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>
billion-ui/src/views/main/bs/materialInfo/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,410 @@
<template>
  <div class="app-container">
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="物料编号" prop="materialCode">
        <el-input
          v-model="queryParams.materialCode"
          placeholder="请输入物料编号"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item label="物料名称" prop="materialName">
        <el-input
          v-model="queryParams.materialName"
          placeholder="请输入物料名称"
          clearable
          @keyup.enter.native="handleQuery"
        />
      </el-form-item>
      <el-form-item style="float: right">
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
        <el-button icon="el-icon-setting" size="mini" @click="toggleAdvancedSearch">高级查询</el-button>
      </el-form-item>
      <transition name="fade">
        <div v-if="advancedSearchVisible" class="advanced-search">
          <el-form-item label="视图" prop="materialView">
            <el-input
              v-model="queryParams.materialView"
              placeholder="请输入视图"
              clearable
              @keyup.enter.native="handleQuery"
            />
          </el-form-item>
          <el-form-item label="种类" prop="typeZ">
            <el-select v-model="queryParams.typeZ" placeholder="请选择种类" clearable>
              <el-option
                v-for="dict in dict.type.type_z"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              />
            </el-select>
          </el-form-item>
          <el-form-item label="类型" prop="typeL">
            <el-select v-model="queryParams.typeL" placeholder="请选择类型" clearable>
              <el-option
                v-for="dict in dict.type.type_l"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              />
            </el-select>
          </el-form-item>
          <el-form-item label="单位" prop="unit">
            <el-select v-model="queryParams.unit" placeholder="请选择单位" clearable>
              <el-option
                v-for="dict in dict.type.unit"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              />
            </el-select>
          </el-form-item>
          <el-form-item label="状态" prop="status">
            <el-select v-model="queryParams.status" placeholder="请选择状态" clearable>
              <el-option
                v-for="dict in dict.type.sys_normal_disable"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              />
            </el-select>
          </el-form-item>
        </div>
      </transition>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['bs:materialInfo:add']"
        >新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['bs:materialInfo:edit']"
        >修改</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['bs:materialInfo:remove']"
        >删除</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="warning"
          plain
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['bs:materialInfo:export']"
        >导出</el-button>
      </el-col>
    </el-row>
    <el-table border v-loading="loading" :data="materialInfoList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column :show-overflow-tooltip="true" label="物料编号" align="center" prop="materialCode" />
      <el-table-column :show-overflow-tooltip="true" label="物料名称" align="center" prop="materialName" />
      <el-table-column :show-overflow-tooltip="true" label="视图" align="center" prop="materialView" />
      <el-table-column label="种类" align="center" prop="typeZ">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.type_z" :value="scope.row.typeZ"/>
        </template>
      </el-table-column>
      <el-table-column label="类型" align="center" prop="typeL">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.type_l" :value="scope.row.typeL"/>
        </template>
      </el-table-column>
      <el-table-column label="单位" align="center" prop="unit">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.unit" :value="scope.row.unit"/>
        </template>
      </el-table-column>
      <el-table-column :show-overflow-tooltip="true" label="版本" align="center" prop="version" />
      <el-table-column label="状态" align="center" prop="status">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
        </template>
      </el-table-column>
      <el-table-column :show-overflow-tooltip="true" label="厂商" align="center" prop="supplier" />
      <el-table-column :show-overflow-tooltip="true" label="备注" align="center" prop="remark" />
      <el-table-column :show-overflow-tooltip="true" label="数据来源" align="center" prop="dataSource" />
      <el-table-column :show-overflow-tooltip="true" label="创建用户" align="center" prop="createBy" />
      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
      </el-table-column>
      <el-table-column :show-overflow-tooltip="true" label="更改用户" align="center" prop="updateBy" />
      <el-table-column label="更改时间" align="center" prop="updateTime" width="180">
      </el-table-column>
    </el-table>
    <pagination
      v-show="total>0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <!-- æ·»åŠ æˆ–ä¿®æ”¹ç‰©æ–™ä¿¡æ¯å¯¹è¯æ¡† -->
    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-form-item label="物料编号" prop="materialCode">
          <el-input v-model="form.materialCode" placeholder="请输入物料编号" />
        </el-form-item>
        <el-form-item label="物料名称" prop="materialName">
          <el-input v-model="form.materialName" placeholder="请输入物料名称" />
        </el-form-item>
        <el-form-item label="视图" prop="materialView">
          <el-input v-model="form.materialView" placeholder="请输入视图" />
        </el-form-item>
        <el-form-item label="种类" prop="typeZ">
          <el-select style="width: 100%" v-model="form.typeZ" placeholder="请选择种类">
            <el-option
              v-for="dict in dict.type.type_z"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="类型" prop="typeL">
          <el-select style="width: 100%" v-model="form.typeL" placeholder="请选择类型">
            <el-option
              v-for="dict in dict.type.type_l"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="单位" prop="unit">
          <el-select style="width: 100%" v-model="form.unit" placeholder="请选择单位">
            <el-option
              v-for="dict in dict.type.unit"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="版本" prop="version">
          <el-input v-model="form.version" placeholder="请输入版本" />
        </el-form-item>
        <el-form-item label="状态" prop="status">
          <el-radio-group v-model="form.status">
            <el-radio
              v-for="dict in dict.type.sys_normal_disable"
              :key="dict.value"
              :label="dict.value"
            >{{dict.label}}</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="厂商" prop="supplier">
          <el-input v-model="form.supplier" placeholder="请输入厂商" />
        </el-form-item>
        <el-form-item label="备注" prop="remark">
          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
        </el-form-item>
        <el-form-item label="数据来源" prop="dataSource">
          <el-input v-model="form.dataSource" placeholder="请输入数据来源" />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">ç¡® å®š</el-button>
        <el-button @click="cancel">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import { listMaterialInfo, getMaterialInfo, delMaterialInfo, addMaterialInfo, updateMaterialInfo } from "@/api/main/bs/materialInfo";
export default {
  name: "MaterialInfo",
  dicts: ['sys_normal_disable', 'type_l', 'unit', 'type_z'],
  data() {
    return {
      // é®ç½©å±‚
      loading: true,
      // é€‰ä¸­æ•°ç»„
      ids: [],
      // éžå•个禁用
      single: true,
      // éžå¤šä¸ªç¦ç”¨
      multiple: true,
      // æ˜¾ç¤ºæœç´¢æ¡ä»¶
      showSearch: true,
      // æ€»æ¡æ•°
      total: 0,
      advancedSearchVisible: false,
      // ç‰©æ–™ä¿¡æ¯è¡¨æ ¼æ•°æ®
      materialInfoList: [],
      // å¼¹å‡ºå±‚标题
      title: "",
      // æ˜¯å¦æ˜¾ç¤ºå¼¹å‡ºå±‚
      open: false,
      // æŸ¥è¯¢å‚æ•°
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        materialCode: null,
        materialName: null,
        materialView: null,
        typeZ: null,
        typeL: null,
        unit: null,
        status: null,
      },
      // è¡¨å•参数
      form: {},
      // è¡¨å•校验
      rules: {
        id: [
          { required: true, message: "主键id不能为空", trigger: "blur" }
        ],
        materialCode: [
          { required: true, message: "物料编号不能为空", trigger: "blur" }
        ],
        materialName: [
          { required: true, message: "物料名称不能为空", trigger: "blur" }
        ],
      }
    };
  },
  created() {
    this.getList();
  },
  methods: {
    toggleAdvancedSearch() {
      this.advancedSearchVisible = !this.advancedSearchVisible;
    },
    /** æŸ¥è¯¢ç‰©æ–™ä¿¡æ¯åˆ—表 */
    getList() {
      this.loading = true;
      listMaterialInfo(this.queryParams).then(response => {
        this.materialInfoList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    // å–消按钮
    cancel() {
      this.open = false;
      this.reset();
    },
    // è¡¨å•重置
    reset() {
      this.form = {
        id: null,
        materialCode: null,
        materialName: null,
        materialView: null,
        typeZ: null,
        typeL: null,
        unit: null,
        version: null,
        status: "0",
        supplier: null,
        remark: null,
        dataSource: null,
        createBy: null,
        createTime: null,
        updateBy: null,
        updateTime: null,
        delFlag: null
      };
      this.resetForm("form");
    },
    /** æœç´¢æŒ‰é’®æ“ä½œ */
    handleQuery() {
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** é‡ç½®æŒ‰é’®æ“ä½œ */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    // å¤šé€‰æ¡†é€‰ä¸­æ•°æ®
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id)
      this.single = selection.length!==1
      this.multiple = !selection.length
    },
    /** æ–°å¢žæŒ‰é’®æ“ä½œ */
    handleAdd() {
      this.reset();
      this.open = true;
      this.title = "添加物料信息";
    },
    /** ä¿®æ”¹æŒ‰é’®æ“ä½œ */
    handleUpdate(row) {
      this.reset();
      const id = row.id || this.ids
      getMaterialInfo(id).then(response => {
        this.form = response.data;
        this.open = true;
        this.title = "修改物料信息";
      });
    },
    /** æäº¤æŒ‰é’® */
    submitForm() {
      this.$refs["form"].validate(valid => {
        if (valid) {
          if (this.form.id != null) {
            updateMaterialInfo(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
            });
          } else {
            addMaterialInfo(this.form).then(response => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
              this.getList();
            });
          }
        }
      });
    },
    /** åˆ é™¤æŒ‰é’®æ“ä½œ */
    handleDelete(row) {
      const ids = row.id || this.ids;
      this.$modal.confirm('是否确认删除').then(function() {
        return delMaterialInfo(ids);
      }).then(() => {
        this.getList();
        this.$modal.msgSuccess("删除成功");
      }).catch(() => {});
    },
    /** å¯¼å‡ºæŒ‰é’®æ“ä½œ */
    handleExport() {
      this.download('bs/materialInfo/export', {
        ...this.queryParams
      }, `materialInfo_${new Date().getTime()}.xlsx`)
    }
  }
};
</script>
billion-ui/src/views/main/bs/routeInfo/ProductSelector.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
<template>
  <el-dialog :title="title" :visible.sync="visible" @close="handleClose">
    <el-table :data="gridData" selection="single" ref="multipleTable" @selection-change="productSelectionChange">
      <el-table-column type="selection" width="55"></el-table-column>
      <el-table-column property="date" label="日期" width="150"></el-table-column>
      <el-table-column property="name" label="姓名" width="200"></el-table-column>
      <el-table-column property="address" label="地址"></el-table-column>
    </el-table>
    <div slot="footer" class="dialog-footer">
      <el-button @click="handleClose">取 æ¶ˆ</el-button>
      <el-button type="primary" @click="confirmSelection">ç¡® å®š</el-button>
    </div>
  </el-dialog>
</template>
<script>
export default {
  name: "ProductSelector",
  props: {
    visible: Boolean,
    title: {
      type: String,
      default: "物料信息"
    },
    gridData: Array
  },
  data() {
    return {
      multipleSelection: []
    };
  },
  methods: {
    handleClose() {
      this.$emit('update:visible', false);
    },
    productSelectionChange(selection) {
      if (selection.length > 1) {
        this.$refs.multipleTable.clearSelection();
        this.$refs.multipleTable.toggleRowSelection(selection[selection.length - 1], true);
        this.multipleSelection = [selection[selection.length - 1]];
      } else {
        this.multipleSelection = selection;
      }
    },
    confirmSelection() {
      if (this.multipleSelection.length > 0) {
        this.$emit('select-product', this.multipleSelection[0]);
        this.handleClose();
      } else {
        this.$message({
          message: '警告哦,未选择任何行',
          type: 'warning'
        });
      }
    }
  }
};
</script>
billion-ui/src/views/main/bs/routeInfo/index.vue
@@ -117,21 +117,21 @@
          </router-link>
        </template>
      </el-table-column>
      <el-table-column show-overflow-tooltip="true" label="流程名称" align="center" prop="routeName" />
      <el-table-column show-overflow-tooltip="true" label="产品编码" align="center" prop="productCode" />
      <el-table-column show-overflow-tooltip="true" label="产品名称" align="center" prop="productName" />
      <el-table-column show-overflow-tooltip="true" label="版本" align="center" prop="version" />
      <el-table-column :show-overflow-tooltip="true" label="流程名称" align="center" prop="routeName" />
      <el-table-column :show-overflow-tooltip="true" label="产品编码" align="center" prop="productCode" />
      <el-table-column :show-overflow-tooltip="true" label="产品名称" align="center" prop="productName" />
      <el-table-column :show-overflow-tooltip="true" label="版本" align="center" prop="version" />
      <el-table-column label="状态" align="center" prop="status">
        <template slot-scope="scope">
          <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
        </template>
      </el-table-column>
      <el-table-column show-overflow-tooltip="true" label="数据来源" align="center" prop="dataSource" />
      <el-table-column show-overflow-tooltip="true" label="备注" align="center" prop="remark" />
      <el-table-column show-overflow-tooltip="true" label="创建用户" align="center" prop="createBy" />
      <el-table-column :show-overflow-tooltip="true" label="数据来源" align="center" prop="dataSource" />
      <el-table-column :show-overflow-tooltip="true" label="备注" align="center" prop="remark" />
      <el-table-column :show-overflow-tooltip="true" label="创建用户" align="center" prop="createBy" />
      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
      </el-table-column>
      <el-table-column show-overflow-tooltip="true" label="更改用户" align="center" prop="updateBy" />
      <el-table-column :show-overflow-tooltip="true" label="更改用户" align="center" prop="updateBy" />
      <el-table-column label="更改时间" align="center" prop="updateTime" width="180">
      </el-table-column>
    </el-table>
@@ -157,7 +157,11 @@
          <el-input v-model="form.routeName" placeholder="请输入流程名称" />
        </el-form-item>
        <el-form-item label="产品编码" prop="productCode">
          <el-input v-model="form.productCode" placeholder="请输入产品编码" />
          <el-input v-model="form.productCode" placeholder="请选择产品编码" readonly>
            <template #append>
              <el-button @click="dialogTableVisible = true">选择</el-button>
            </template>
          </el-input>
        </el-form-item>
        <el-form-item label="产品名称" prop="productName">
          <el-input v-model="form.productName" placeholder="请输入产品名称" />
@@ -186,17 +190,46 @@
        <el-button @click="cancel">取 æ¶ˆ</el-button>
      </div>
    </el-dialog>
    <!-- äº§å“é€‰æ‹©å™¨ç»„ä»¶ -->
    <ProductSelector
      :visible="dialogTableVisible"
      :gridData="gridData"
      @select-product="handleSelectProduct"
      @update:visible="dialogTableVisible = $event"
    />
  </div>
</template>
<script>
import { listRouteInfo, getRouteInfo, delRouteInfo, addRouteInfo, updateRouteInfo } from "@/api/main/bs/routeInfo";
import ProductSelector from "./ProductSelector.vue";
export default {
  components: {
    ProductSelector
  },
  name: "RouteInfo",
  dicts: ['sys_normal_disable'],
  data() {
    return {
      multipleSelection: [],
      gridData: [{
        date: '2016-05-02',
        name: '王一虎',
        address: '上海市普陀区金沙江路 1518 å¼„'
      }, {
        date: '2016-05-04',
        name: '王二虎',
        address: '上海市普陀区金沙江路 1518 å¼„'
      }, {
        date: '2016-05-01',
        name: '王三虎',
        address: '上海市普陀区金沙江路 1518 å¼„'
      }, {
        date: '2016-05-03',
        name: '王四虎',
        address: '上海市普陀区金沙江路 1518 å¼„'
      }],
      dialogTableVisible: false,
      advancedSearchVisible: false,
      // é®ç½©å±‚
      loading: true,
@@ -247,6 +280,10 @@
    this.getList();
  },
  methods: {
    handleSelectProduct(selectedProduct) {
      this.form.productCode = selectedProduct.date;  // å‡è®¾ä½ éœ€è¦çš„æ˜¯æ—¥æœŸå­—段
      this.form.productName = selectedProduct.name;  // å‡è®¾ä½ éœ€è¦çš„æ˜¯å§“名字段
    },
    toggleAdvancedSearch() {
      this.advancedSearchVisible = !this.advancedSearchVisible;
    },