Vue添加--图片 二级联动
二级联动:
首先在数据处理层写对应语句,
#region 分类 public List<GTYpe> GTYpe(int id) { return db.GTYpe.Where(p => p.GPId == id).ToList(); } #endregion
对应的在控制器进行调用之后
在vue里写对应的参数和方法:
data() { return { brands: [], //品牌 classifys:[] //分类 } }
methods: {
//加载分类
getBrand() {
axios.get('/Info/GTYpe?id=0').then(res => {
this.brands = res.data;
this.brands.unshift({ "GTId": "0", "GTName": "请选择" });
});
},
//加载品牌
getClassify() {
//this.proData.GTId>0 代表 点击的不是请选择
if (this.proData.GTId>0) {
axios.get('/Info/GTYpe?id=' + this.proData.GTId).then(res => {
this.classifys = res.data;
this.classifys.unshift({ "GTId": "0", "GTName": "请选择" });
this.proData.GPId = 0; //将品牌 变成 请选择状态
});
}
this.classifys = [];
},
在挂载函数中调用第一级下拉
created: function () { this.getBrand() }
在表单里写对应的v_model v-for 循环输出
<tr>
<td>商品分类:</td>
<td>
分类:
<select v-model="proData.GTId" v-on:change="getClassify">
<option v-for="(item,index) in brands" :value="item.GTId">{{item.GTName}}</option>
</select>
品牌:
<select v-model="proData.GPId">
<option v-for="(item,index) in classifys" :value="item.GTId">{{item.GTName}}</option>
</select>
</td>
</tr>
vue的图片上传:
首先在控制器里写一个图片上传的方法:
[HttpPost] public ActionResult UpLoad() { var file = Request.Files[0]; var imgdir = Server.MapPath("/Images/"); //if (!Directory.Exists(imgdir)) //{ // Directory.CreateDirectory(imgdir); //} file.SaveAs(imgdir + file.FileName); return Json(new { code=1,fileName=file.FileName}, JsonRequestBehavior.DenyGet); }
在添加页面里,写对应的vue的方法:
//文件上传
[HttpPost]
public ActionResult UpLoad()
{
try
{
//一、获取前台传过来的文件
var file = Request.Files[0];
//将虚拟路径转成物理路径
var imgDir = Server.MapPath("/Images/");
//判断你要存储的文件夹是否存在,不存在创建
//需要引用System.IO
if (!Directory.Exists(imgDir))
{
//创建文件夹
Directory.CreateDirectory(imgDir);
}
//保存
file.SaveAs(imgDir + file.FileName);
return Json(new {code = 1,fileName = file.FileName,msg="" }, JsonRequestBehavior.DenyGet);
}
catch (Exception ex)
{
return Json(new { code = 0, fileName = "", msg =ex.Message },JsonRequestBehavior.DenyGet);
}
}
在vue里写对应的方法用来上传和接收
//上传图片 upLoad(event) { //获取图片 let file = event.target.files[0]; //配置头部类型 //let config = { // headers: { // 'Context-Type':"multipart/form-data" // } //} let fd = new FormData(); fd.append("file", file); axios.post('/Info/UpLoad', fd).then(res => { if (res.data.code > 0) { this.proData.ImgUrl = res.data.fileName; alert('上传成功') } else { alert(res.data.msg) } }) },
在表单里修改对应的数据
<tr>
<td>商品图:</td>
<td><input type="file" value="" v-on:change="upLoad" /></td>
</tr>


浙公网安备 33010602011771号