You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

443 lines
22 KiB

  1. @{
  2. ViewBag.Title = "Unit";
  3. Layout = "~/Views/Shared/_Index.cshtml";
  4. }
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  8. <meta name="renderer" content="webkit">
  9. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  10. <meta name="format-detection" content="telephone=no" />
  11. <link rel="shortcut icon" href="" />
  12. <title>数字化校园-宿舍</title>
  13. <meta name="keywords" content="数字化校园-宿舍" />
  14. <meta name="description" content="数字化校园-宿舍" />
  15. <link href="~/Content/font/css/font-awesome.css" rel="stylesheet" />
  16. <link href="~/Content/css/swiper.min.css" rel="stylesheet" />
  17. <link href="~/Content/css/common.css" rel="stylesheet" />
  18. <link href="~/Content/css/index.css" rel="stylesheet" />
  19. <!--自适应-->
  20. <script src="~/Content/jquery/plugin/layer/layer.js"></script>
  21. <script src="~/Content/echarts/echarts.js"></script>
  22. <script src="~/Content/news/js/easing.js"></script>
  23. <script src="~/Content/jquery/plugin/jquery-ui/jquery-ui.min.js"></script>
  24. <!--自适应-->
  25. <script src="~/Content/js/dormitory/main.js"></script>
  26. <!--[if lte IE 9]>
  27. <script src="js/respond.min.js"></script>
  28. <script src="js/html5shiv.js"></script>
  29. <![endif]-->
  30. <style>
  31. html, body {
  32. background-image: url('/Content/images/floor/bg2.jpg');
  33. filter: progid:DXImageTransform.Microsoft.AlphaImageLoader (src='/Content/images/floor/bg2.jpg', sizingMethod='scale');
  34. overflow: auto;
  35. }
  36. .layerImg {
  37. top: 0px;
  38. left: 0px;
  39. width: 225px
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <!-- / warpper -->
  45. <div id="app" class="index_warpper unit_warpper">
  46. <!-- / index_sec1 -->
  47. <div class="index_sec index_sec1">
  48. <div class="index_box">
  49. <div class="indSec1T">
  50. @*山西省小店区高新校区*@ <a href="/LogisticsManagement/Accommodation/Floor">{{dormitoryName}}</a>
  51. <ul class="indSec1List">
  52. @*<li><a href="#"><img src="/Content/images/floor/inSec1-5.png" alt="" />多条件查找宿舍楼</a></li>
  53. <li><a href="#"><img src="/Content/images/floor/inSec1-6.png" alt="" />自动分配宿舍</a></li>*@
  54. <li><a href="#" @@click="addFloor()"><img src="/Content/images/floor/inSec1-7.png" alt="" />添加单元</a></li>
  55. @*<li><a href="#"><img src="/Content/images/floor/inSec1-8.png" alt="" />批量删除</a></li>
  56. <li><a href="#"><img src="/Content/images/floor/inSec1-9.png" alt="" />打印宿舍数据</a></li>*@
  57. </ul>
  58. </div>
  59. <div class="inSec1Row">
  60. <div v-for="floor in floors" class="inSec1Col3">
  61. <div class="inSec1Box">
  62. <div class="inSec1Top">
  63. <span>{{floor.dormitory.Name}}</span>
  64. <ul class="inSec1TopList">
  65. <li>
  66. <a href="javascript:;"><img src="/Content/images/floor/inSec1-2.png" alt="" /></a>
  67. <div class="inSec1Con inSec1Con1">
  68. <img class="inSec1Horn" src="/Content/images/floor/inSec1-11.png" alt="" />
  69. <div class="inSec1Con2">
  70. <div class="inSec1ConT">{{floor.dormitory.Name}} <div class="inSec1Sex" :style="floor.dormitory.Sex | filter_style"><img :src="floor.dormitory.Sex | filter_sexImg" alt="" />{{floor.dormitory.Sex | filter_sex}}</div></div>
  71. <div class="inSec1ConTxt">
  72. <span>{{floor.floorNum}}</span>层 <span>{{floor.RoomNum}}</span>间 <span>{{floor.BedNum}}</span>床
  73. </div>
  74. <div class="inSec1ConTxt">
  75. 入住 <span>{{floor.HasStudentNum}}</span>人 &nbsp;&nbsp;&nbsp;&nbsp; 空闲<span>{{floor.NoStudentNum}}</span>床位
  76. </div>
  77. <div @@click="checkDetail(floor)" class="inSec1Btn">查看更多信息 <i class="fa fa-angle-right"></i></div>
  78. </div>
  79. </div>
  80. </li>
  81. <li><a @@click="update(floor.dormitory.ID)" href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a></li>
  82. <li><a @@click="deleteFloor(floor)" href="javascript:;"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a></li>
  83. </ul>
  84. <div class="clear"></div>
  85. </div>
  86. <div class="inSec1Img">
  87. <a :href="floor.dormitory.ID | filter_url"><img src="/Content/images/floor/unit1-1.png" alt="" /></a>
  88. </div>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. <!-- / index_sec1 -->
  95. </div>
  96. <!-- / warpper -->
  97. <script>
  98. //var data = {
  99. // "rows": [
  100. // {
  101. // "ID": "289fb13a-8e91-4c5d-bd6b-7b7de344dc17",
  102. // "Name": "1单元",
  103. // "Functionary": '负责人',
  104. // "Leader": '舍长',
  105. // "BuildType": "宿舍楼-类型",
  106. // "CreateBy": '创建人',
  107. // "CreateTime": '创建时间',
  108. // "UpdateBy": '更新人',
  109. // "UpdateTime": '更新时间',
  110. // "Price": '价格',
  111. // "Remark": '备注说明',
  112. // "Phone": '负责人电话',
  113. // "Address": '地址',
  114. // "Campus": '校区',
  115. // "Major": '专业',
  116. // "Class": '班级',
  117. // "Sex": "0",//性别
  118. // "StudentID": '学生id',
  119. // "ParentID": "父ID",
  120. // "StuName": 'null'
  121. // },
  122. // {
  123. // "ID": "289fb13a-8e91-4c5d-bd6b-7b7de344dc17",
  124. // "Name": "22单元",
  125. // "Functionary": '张丽梅',
  126. // "Leader": '舍长',
  127. // "BuildType": "宿舍楼-类型",
  128. // "CreateBy": '薛礼根',
  129. // "CreateTime": '2019-05-14',
  130. // "UpdateBy": '薛礼根',
  131. // "UpdateTime": '2019-05-14',
  132. // "Price": '800~1200',
  133. // "Remark": '备注说明',
  134. // "Phone": '15735806069',
  135. // "Address": '山西省小店区南中环街高新区23号',
  136. // "Campus": '山西省小店区高新校区',
  137. // "Major": '数学与应用数学',
  138. // "Class": '班级',
  139. // "Sex": "0",//性别
  140. // "StudentID": '学生id',
  141. // "ParentID": "父ID",
  142. // "StuName": 'null'
  143. // }
  144. // ],
  145. // "total": 1,
  146. // "page": 1,
  147. // "records": 10
  148. //}
  149. //var html = '';
  150. //$.each(data.rows, function (i, n) {
  151. // var floor = floorName(n.Name, 2);
  152. // html += '<div class="inSec1Col3">' +
  153. // '<div class="inSec1Box">' +
  154. // '<div class="inSec1Top">' +
  155. // '<span><span>' + floor + '</span> 单元</span>' +
  156. // '<ul class="inSec1TopList">' +
  157. // '<li>' +
  158. // '<a href="javascript:;"><img src="/Content/images/floor/inSec1-2.png" alt="" /></a>' +
  159. // '<div class="inSec1Con inSec1Con1">' +
  160. // '<img class="inSec1Horn" src="/Content/images/floor/inSec1-11.png" alt="" />' +
  161. // '<div class="inSec1Con2">' +
  162. // '<div class="inSec1ConT"><span>' + floor + '</span>单元 <div class="inSec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>' +
  163. // '<div class="inSec1ConTxt">' +
  164. // '<span>6</span>层 <span>120</span>间 <span>480</span>床' +
  165. // '</div>' +
  166. // '<div class="inSec1ConTxt">' +
  167. // '入住 <span>1210</span>人 &nbsp;&nbsp;&nbsp;&nbsp; 空闲<span>1920</span>床位' +
  168. // '</div>' +
  169. // '<div class="inSec1Btn" index="' + i + '">查看更多信息 <i class="fa fa-angle-right"></i></div>' +
  170. // '</div>' +
  171. // '</div>' +
  172. // '</li>' +
  173. // '<li><a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a></li>' +
  174. // '<li><a href="javascript:;"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a></li>' +
  175. // '</ul>' +
  176. // '<div class="clear"></div>' +
  177. // '</div>' +
  178. // '<div class="inSec1Img">' +
  179. // '<a href="corridor"><img src="/Content/images/floor/unit1-1.png" alt="" /></a>' +
  180. // '</div></div></div>';
  181. //})
  182. //$('.inSec1Row').html(html).on('click', '.inSec1Btn', function () {
  183. // var ind = $(this).attr('index');
  184. // var datas = data.rows[ind];
  185. // var floor = floorName(datas.Name, 2);
  186. // layer.open({
  187. // type: 1,
  188. // closeBtn: 2,
  189. // area: ['888px', '80%'],
  190. // content: '<div class="layerBox unitLayer">' +
  191. // '<div class="layer_sec1 layer_sec">' +
  192. // '<div class="laySec1L">' +
  193. // '<div class="laySec1ConTitle"><span>1</span>号楼</div>' +
  194. // '<div class="laySec1ConT"><span>' + floor + '</span>单元' +
  195. // '<div class="laySec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>' +
  196. // '</div>' +
  197. // '<div class="laySec1R">' +
  198. // '<div><div class="laySec1Txt"><span>负&nbsp;责&nbsp;人</span>' + datas.Functionary + '</div> <div class="laySec1Txt"><span>负责人电话</span>' + datas.Phone + '</div></div>' +
  199. // '<div class="laySec1Txt"><span>校&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</span>' + datas.Campus + '</div>' +
  200. // '<div class="laySec1Txt"><span>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</span>' + datas.Address + '</div>' +
  201. // '</div>' +
  202. // '</div>' +
  203. // '<div class="layer_sec layer_sec2">' +
  204. // '<ul class="laySec2List">' +
  205. // '<li><span>编&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号</span>001</li>' +
  206. // '<li><span>价&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格</span>' + datas.Price + ' <i>元</i></li>' +
  207. // '<li><span>楼&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;层</span>6 <i>个</i></li>' +
  208. // '<li><span>入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;住</span>1210 <i>人</i></li>' +
  209. // '<li><span>房&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;间</span>480 <i>间</i></li>' +
  210. // '<li><span>空&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;床</span>710 <i>床</i></li>' +
  211. // '<li><span>床&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</span>1920 <i>个</i></li>' +
  212. // '<li><span>涉及院系</span></li>' +
  213. // '<li><span>涉及专业</span>' + datas.Major + '</li>' +
  214. // '</ul>' +
  215. // '<div class="laySec2Btn">' +
  216. // '<a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a>' +
  217. // '<a href="#"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a>' +
  218. // '<a href="#"><img src="/Content/images/floor/inSec1-12.png" alt="" /></a>' +
  219. // '</div>' +
  220. // '</div>' +
  221. // '<div class="layer_sec layer_sec2 layer_sec4">' +
  222. // '<ul class="laySec2List">' +
  223. // '<li><span>创 建 人 </span>' + datas.CreateBy + '</li>' +
  224. // '<li><span>创建时间 </span>' + datas.CreateTime + '</li>' +
  225. // '<li><span>更 新 人</span>' + datas.UpdateBy + ' </li>' +
  226. // '<li><span>更新时间</span>' + datas.UpdateTime + ' </li>' +
  227. // '</ul>' +
  228. // '</div>' +
  229. // '<img class="layerImg" src="/Content/images/floor/unit1-2.png" alt="" />' +
  230. // '</div>'
  231. // })
  232. //})
  233. var parentID='@ViewBag.ParentID';
  234. var vm = new Vue({
  235. el: "#app",
  236. data: {
  237. floors: "",
  238. sexImgUrl: "/Content/images/floor/inSec1-10.png",
  239. dormitoryName: "",
  240. dormitoryID:""
  241. },
  242. methods: {
  243. getData: function () {
  244. $.get('/LogisticsManagement/Accommodation/GetUnitList?ParentID=' + parentID, function (ref) {
  245. if (ref.data) {
  246. this.floors = ref.data.rows;
  247. this.dormitoryName = ref.data.DormitoryName;
  248. this.dormitoryID = ref.data.DormitoryID;
  249. }
  250. }.bind(this), "json");
  251. },
  252. laterGetData: function () {
  253. setTimeout(function () {
  254. this.getData();
  255. }.bind(this), 1000);
  256. },
  257. filter_Major: function (value) {
  258. var result;
  259. top.learun.clientdata.getAsync('custmerData', {
  260. sync: true,
  261. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'CdMajorInfo',
  262. key: value,
  263. keyId: 'id',
  264. callback: function (_data) {
  265. result = _data.majorname;
  266. }
  267. });
  268. return result;
  269. },
  270. filter_company: function (value) {
  271. var result;
  272. top.learun.clientdata.getAsync('custmerData', {
  273. sync: true,
  274. url: '/LR_SystemModule/DataSource/GetDataTable?code=' + 'company',
  275. key: value,
  276. keyId: 'f_companyid',
  277. callback: function (_data) {
  278. result = _data.f_fullname;
  279. }
  280. });
  281. return result;
  282. },
  283. filter_sex: function (value) {
  284. if (value == "1") {
  285. return '<div class="laySec1Sex" style="background:#7070da"><img src="/Content/images/floor/inSec1-10_2.png" alt="" />男生宿舍</div></div>'
  286. } else {
  287. return '<div class="laySec1Sex"><img src="/Content/images/floor/inSec1-10.png" alt="" />女生宿舍</div></div>'
  288. }
  289. },
  290. allocation: function () {
  291. top.learun.layerForm({
  292. id: 'form',
  293. title: '自动分配宿舍',
  294. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/Allocation',
  295. width: 400,
  296. height: 250,
  297. callBack: function (id) {
  298. return top[id].acceptClick(refreshGirdData);
  299. }
  300. });
  301. },
  302. addFloor: function () {
  303. var url = "";
  304. url = top.$.rootUrl + '/LogisticsManagement/Accommodation/Form?ParentID=' + this.dormitoryID + '&ParentName=' + this.dormitoryName;
  305. top.learun.layerForm({
  306. id: 'form',
  307. title: '新增',
  308. url: url,
  309. width: 600,
  310. height: 400,
  311. callBack: function (id) {
  312. return top[id].acceptClick(this.laterGetData());
  313. }.bind(this)
  314. });
  315. },
  316. update: function (id) {
  317. top.learun.layerForm({
  318. id: 'form',
  319. title: '编辑',
  320. url: top.$.rootUrl + '/LogisticsManagement/Accommodation/Form?keyValue=' + id,
  321. width: 600,
  322. height: 400,
  323. callBack: function (id) {
  324. return top[id].acceptClick(this.laterGetData());
  325. }.bind(this)
  326. });
  327. },
  328. deleteFloor: function (floor) {
  329. top.learun.layerConfirm('是否确认删除该项!', function (res) {
  330. if (res) {
  331. this.floors.splice($.inArray(floor, this.floors), 1);
  332. top.learun.deleteForm(top.$.rootUrl + '/LogisticsManagement/Accommodation/DeleteForm', { keyValue: floor.dormitory.ID }, function () {
  333. });
  334. }
  335. }.bind(this));
  336. },
  337. checkDetail: function (floor) {
  338. var echarts1;
  339. //圆形图
  340. var i = 0;
  341. var g = (floor.HasStudentNum / floor.BedNum) * 100 + "%";
  342. layer.open({
  343. type: 1,
  344. closeBtn: 2,
  345. area: ['888px', '80%'],
  346. content: '<div class="layerBox unitLayer">' +
  347. '<div class="layer_sec1 layer_sec">' +
  348. '<div class="laySec1L">' +
  349. '<div class="laySec1ConT">' + floor.dormitory.Name + this.filter_sex(floor.dormitory.Sex) +
  350. '</div>' +
  351. '<div class="laySec1R">' +
  352. '<div><div class="laySec1Txt"><span>负&nbsp;责&nbsp;人</span>' + floor.dormitory.Functionary + '</div> <div class="laySec1Txt"><span>负责人电话</span>' + floor.dormitory.Phone + '</div></div>' +
  353. '<div class="laySec1Txt"><span>校&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;区</span>' + this.filter_company(floor.dormitory.Campus) + '</div>' +
  354. '<div class="laySec1Txt"><span>地&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;址</span>' + floor.dormitory.Address + '</div>' +
  355. '</div>' +
  356. '</div>' +
  357. '<div class="layer_sec layer_sec2">' +
  358. '<ul class="laySec2List">' +
  359. '<li><span>编&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号</span>' + floor.dormitory.Name + '</li>' +
  360. '<li><span>价&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;格</span>' + floor.dormitory.Price + ' <i>元</i></li>' +
  361. '<li><span>楼&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;层</span>' + floor.floorNum + ' <i>层</i></li>' +
  362. '<li><span>入&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;住</span>' + floor.HasStudentNum + ' <i>人</i></li>' +
  363. '<li><span>房&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;间</span>' + floor.RoomNum + ' <i>间</i></li>' +
  364. '<li><span>空&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;床</span>' + floor.NoStudentNum + ' <i>床</i></li>' +
  365. '<li><span>床&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</span>' + floor.BedNum + ' <i>个</i></li>' +
  366. '<li><span>涉及院系</span></li>' +
  367. '<li><span>涉及专业</span>' + this.filter_Major(floor.dormitory.Major) + '</li>' +
  368. '</ul>' +
  369. '<div class="laySec2Btn">' +
  370. //'<a href="#"><img src="/Content/images/floor/inSec1-1.png" alt="" /></a>' +
  371. //'<a href="#"><img src="/Content/images/floor/inSec1-3.png" alt="" /></a>' +
  372. //'<a href="#"><img src="/Content/images/floor/inSec1-12.png" alt="" /></a>' +
  373. '</div>' +
  374. '</div>' +
  375. '<div class="layer_sec layer_sec2 layer_sec4">' +
  376. '<ul class="laySec2List">' +
  377. '<li><span>创 建 人 </span>' + floor.dormitory.CreateBy + '</li>' +
  378. '<li><span>创建时间 </span>' + floor.dormitory.CreateTime + '</li>' +
  379. '<li><span>更 新 人</span>' + floor.dormitory.UpdateBy + ' </li>' +
  380. '<li><span>更新时间</span>' + floor.dormitory.UpdateTime + ' </li>' +
  381. '</ul>' +
  382. '</div>' +
  383. '<img class="layerImg" src="/Content/images/floor/unit1-2.png" alt="" />' +
  384. '</div>',
  385. })
  386. }
  387. },
  388. created() {
  389. this.getData();
  390. },
  391. filters: {
  392. filter_sex: function (value) {
  393. return value == "1" ? "男生宿舍" : "女生宿舍";
  394. },
  395. filter_sexImg: function (value) {
  396. return value == "1" ? "/Content/images/floor/inSec1-10_2.png" : "/Content/images/floor/inSec1-10.png"
  397. },
  398. filter_style: function (value) {
  399. return value == "1" ? { background: '#7070da' } : {};
  400. },
  401. filter_url: function (value) {
  402. return "/LogisticsManagement/Accommodation/Corridor?ID=" + value;
  403. }
  404. }
  405. })
  406. </script>
  407. </body>