Forráskód Böngészése

项目初始化,架构搭好,群体管理界面完成

linan 5 éve
szülő
commit
3bce05aef4
100 módosított fájl, 12003 hozzáadás és 433 törlés
  1. 4 7
      src/api/login.js
  2. 0 26
      src/sdk/ajax.js
  3. 34 62
      src/views/Login/Login.vue
  4. 92 20
      src/views/groupManagment/GroupRecord.vue
  5. 88 172
      src/views/template/Aa.vue
  6. 88 146
      src/views/template/Ab.vue
  7. BIN
      资料/猪联网.rar
  8. 7 0
      资料/猪联网/data/document.js
  9. 67 0
      资料/猪联网/data/styles.css
  10. 7 0
      资料/猪联网/files/index/data.js
  11. 14 0
      资料/猪联网/files/index/styles.css
  12. 7 0
      资料/猪联网/files/个体追踪/data.js
  13. 3289 0
      资料/猪联网/files/个体追踪/styles.css
  14. 7 0
      资料/猪联网/files/群体档案/data.js
  15. 7216 0
      资料/猪联网/files/群体档案/styles.css
  16. BIN
      资料/猪联网/images/个体追踪/axhub-line-chart_u241.png
  17. BIN
      资料/猪联网/images/个体追踪/u156.png
  18. BIN
      资料/猪联网/images/个体追踪/u157.png
  19. BIN
      资料/猪联网/images/个体追踪/u158.png
  20. BIN
      资料/猪联网/images/个体追踪/u216.png
  21. BIN
      资料/猪联网/images/个体追踪/u217.png
  22. BIN
      资料/猪联网/images/个体追踪/u222.png
  23. BIN
      资料/猪联网/images/个体追踪/u223.png
  24. BIN
      资料/猪联网/images/个体追踪/u224.png
  25. BIN
      资料/猪联网/images/个体追踪/u227.png
  26. BIN
      资料/猪联网/images/个体追踪/u231.png
  27. BIN
      资料/猪联网/images/个体追踪/u232.png
  28. BIN
      资料/猪联网/images/个体追踪/u242.png
  29. BIN
      资料/猪联网/images/个体追踪/u247.png
  30. BIN
      资料/猪联网/images/群体档案/u0.png
  31. BIN
      资料/猪联网/images/群体档案/u1.png
  32. BIN
      资料/猪联网/images/群体档案/u109.png
  33. BIN
      资料/猪联网/images/群体档案/u110.png
  34. BIN
      资料/猪联网/images/群体档案/u111.png
  35. BIN
      资料/猪联网/images/群体档案/u113.png
  36. BIN
      资料/猪联网/images/群体档案/u114.png
  37. BIN
      资料/猪联网/images/群体档案/u136.png
  38. BIN
      资料/猪联网/images/群体档案/u136_mouseOver.png
  39. BIN
      资料/猪联网/images/群体档案/u22.png
  40. BIN
      资料/猪联网/images/群体档案/u31.png
  41. BIN
      资料/猪联网/images/群体档案/u32.png
  42. BIN
      资料/猪联网/images/群体档案/u39.png
  43. BIN
      资料/猪联网/images/群体档案/u40.png
  44. BIN
      资料/猪联网/images/群体档案/u42.png
  45. BIN
      资料/猪联网/images/群体档案/u44.png
  46. BIN
      资料/猪联网/images/群体档案/u46.png
  47. BIN
      资料/猪联网/images/群体档案/u53.png
  48. BIN
      资料/猪联网/images/群体档案/u59.png
  49. BIN
      资料/猪联网/images/群体档案/u60.png
  50. BIN
      资料/猪联网/images/群体档案/u61.png
  51. BIN
      资料/猪联网/images/群体档案/u96.png
  52. BIN
      资料/猪联网/images/群体档案/系统设置_u29.png
  53. BIN
      资料/猪联网/images/群体档案/首页_u28.png
  54. 28 0
      资料/猪联网/index.html
  55. 135 0
      资料/猪联网/plugins/debug/styles/debug.css
  56. 11 0
      资料/猪联网/plugins/debug/styles/images/reset.svg
  57. 11 0
      资料/猪联网/plugins/debug/styles/images/reset_hover.svg
  58. BIN
      资料/猪联网/plugins/debug/styles/images/variables_hover.png
  59. 12 0
      资料/猪联网/plugins/debug/styles/images/variables_hover.svg
  60. BIN
      资料/猪联网/plugins/debug/styles/images/variables_off.png
  61. 12 0
      资料/猪联网/plugins/debug/styles/images/variables_off.svg
  62. BIN
      资料/猪联网/plugins/debug/styles/images/variables_on.png
  63. 12 0
      资料/猪联网/plugins/debug/styles/images/variables_on.svg
  64. BIN
      资料/猪联网/plugins/page_notes/styles/images/back.png
  65. 12 0
      资料/猪联网/plugins/page_notes/styles/images/back.svg
  66. BIN
      资料/猪联网/plugins/page_notes/styles/images/back_hover.png
  67. 12 0
      资料/猪联网/plugins/page_notes/styles/images/back_hover.svg
  68. BIN
      资料/猪联网/plugins/page_notes/styles/images/footnotes.png
  69. 15 0
      资料/猪联网/plugins/page_notes/styles/images/footnotes.svg
  70. BIN
      资料/猪联网/plugins/page_notes/styles/images/footnotes_hover.png
  71. 15 0
      资料/猪联网/plugins/page_notes/styles/images/footnotes_hover.svg
  72. BIN
      资料/猪联网/plugins/page_notes/styles/images/footnotes_on.png
  73. 15 0
      资料/猪联网/plugins/page_notes/styles/images/footnotes_on.svg
  74. BIN
      资料/猪联网/plugins/page_notes/styles/images/forward.png
  75. 12 0
      资料/猪联网/plugins/page_notes/styles/images/forward.svg
  76. BIN
      资料/猪联网/plugins/page_notes/styles/images/forward_hover.png
  77. 12 0
      资料/猪联网/plugins/page_notes/styles/images/forward_hover.svg
  78. BIN
      资料/猪联网/plugins/page_notes/styles/images/notes_hover.png
  79. 9 0
      资料/猪联网/plugins/page_notes/styles/images/notes_hover.svg
  80. BIN
      资料/猪联网/plugins/page_notes/styles/images/notes_off.png
  81. 9 0
      资料/猪联网/plugins/page_notes/styles/images/notes_off.svg
  82. BIN
      资料/猪联网/plugins/page_notes/styles/images/notes_on.png
  83. 9 0
      资料/猪联网/plugins/page_notes/styles/images/notes_on.svg
  84. 159 0
      资料/猪联网/plugins/page_notes/styles/page_notes.css
  85. 479 0
      资料/猪联网/plugins/recordplay/recordplay.js
  86. 89 0
      资料/猪联网/plugins/recordplay/styles/recordplay.css
  87. BIN
      资料/猪联网/plugins/sitemap/styles/images/079_page_16.png
  88. BIN
      资料/猪联网/plugins/sitemap/styles/images/086_case_16.png
  89. BIN
      资料/猪联网/plugins/sitemap/styles/images/225_responsive_16.png
  90. BIN
      资料/猪联网/plugins/sitemap/styles/images/228_togglenotes_16.png
  91. BIN
      资料/猪联网/plugins/sitemap/styles/images/229_variables_16.png
  92. BIN
      资料/猪联网/plugins/sitemap/styles/images/231_event_16.png
  93. BIN
      资料/猪联网/plugins/sitemap/styles/images/232_search_16.png
  94. BIN
      资料/猪联网/plugins/sitemap/styles/images/233_hyperlink_16.png
  95. BIN
      资料/猪联网/plugins/sitemap/styles/images/235_folderclosed_16.png
  96. BIN
      资料/猪联网/plugins/sitemap/styles/images/236_folderopen_16.png
  97. BIN
      资料/猪联网/plugins/sitemap/styles/images/adaptivecheck.png
  98. BIN
      资料/猪联网/plugins/sitemap/styles/images/flow.png
  99. 15 0
      资料/猪联网/plugins/sitemap/styles/images/flow.svg
  100. 0 0
      资料/猪联网/plugins/sitemap/styles/images/folder_closed.png

+ 4 - 7
src/api/login.js

@@ -1,14 +1,11 @@
 import { ajax } from "../sdk/ajax";
 
-/*  */
-export const reqMyAsset = () => ajax("post", {
-    act: "f", 
-    cmd: "myinfo"
-})
-
 
 /* 登录 */
 export const reqLogin = (data) => ajax("post", "/core/auth/login", data)
 
 /* 选择组织 */
-export const reqOrgChoose = () => ajax("get", "/core/employ-relation/under-list")
+export const reqOrgChoose = () => ajax("get", "/core/employ-relation/under-list")
+
+
+export const reqOrganizationId = (data) => ajax("POST", "/core/auth/choose-org",data)

+ 0 - 26
src/sdk/ajax.js

@@ -29,29 +29,3 @@ export const ajax = function (type = "post", url, params) {
         });
     });
 }
-
-
-/* 登录 ajax封装 */
-export const ajax_login = function (type = "post", params, url = "/Salors") {
-    params.v = "webv09";
-    params.time = Date.parse(new Date()) / 1000;
-    params.app_type = "web";
-    params.sign = md5(params);
-
-    return new Promise((resole, reject) => {
-        axios({
-            method: type,
-            url: SERVER_HREF + url,
-            params,
-            headers: {
-                "Content-Type": "application/x-www-form-urlencoded; charset=utf-8;"
-            }
-        }).then((res) => {
-            resole(res);
-        }).catch((err) => {
-            reject(err);
-        });
-    });
-}
-
-

+ 34 - 62
src/views/Login/Login.vue

@@ -40,7 +40,7 @@
 import { mapActions } from "vuex";
 import sdk from "../../sdk/index";
 
-import { reqLogin, reqOrgChoose } from "../../api/login";
+import { reqLogin, reqOrgChoose, reqOrganizationId } from "../../api/login";
 
 export default {
     name: "login",
@@ -68,86 +68,58 @@ export default {
     },
     methods: {
         ...mapActions(["login", "fetch"]),
+        /* 登录按钮 */
         onSignIn() {
-            console.log(this.form)
-            reqLogin(this.form).then(res => {
-                console.log(res)
-                localStorage.setItem("token", res.token)
-            })
+            console.log(this.form);
+            reqLogin(this.form)
+                .then(res => {
+                    console.log(res);
+                    localStorage.setItem("token", res.token);
+                    this.doOrganizationChoose();
+                })
+                .catch(err => {
+                    console.log("登录失败", err);
+                });
         },
-
-
-        
         handleSet: function() {
             if (!this.orgSelected) {
                 this.$message.info("请先选择组织");
             } else this.setOrganizationId(this.orgSelected);
         },
-        /* 登录按钮 */
-        // onSignIn() {
-        //     this.fetch({
-        //         api: "/core/auth/login",
-        //         method: "POST",
-        //         data: this.form,
-        //         success: res => {
-        //             console.log("登录结果", res);
-        //             localStorage.setItem("token", res.token)
-        //             this.login(res.token);
-        //             // 显示一个dialog 让用户选择组
-        //             this.doOrganizationChoose();
-        //         },
-        //         fail: err => {
-        //             console.log("登录失败", err);
-        //         }
-        //     });
-        // },
-
-        reqOrgChoose() {},
         doOrganizationChoose() {
             this.loading = true;
-            this.fetch({
-                api: "/core/employ-relation/under-list",
-                method: "GET",
-                success: res => {
-                    if (res == null || res.length == 0) {
-                        this.$message.info("您没有加入任何组织!");
-                    } else if (res.length > 1) {
-                        this.isShowDialog = true;
-                        this.orgList = res;
-                    } else {
-                        this.setOrganizationId(res[0].id);
-                    }
-                },
-                fail: err => {},
-                complete: res => {
-                    this.loading = false;
+            reqOrgChoose().then(res => {
+                if (res == null || res.length == 0) {
+                    this.$message.info("您没有加入任何组织!");
+                } else if (res.length > 1) {
+                    this.isShowDialog = true;
+                    this.orgList = res;
+                } else {
+                    this.setOrganizationId(res[0].id);
                 }
-            });
+            }).catch(err => {
+                console.log(err)
+            }).finally( res => {
+                this.loading = false;
+            })
         },
-        setOrganizationId(id) {
+        setOrganizationId(id){
             if (!id) {
                 this.$message.error("发生了一点不愉快的错误!");
                 return;
             }
             this.loading = true;
-            this.fetch({
-                api: "/core/auth/choose-org",
-                method: "POST",
-                data: { orgId: id },
-                success: res => {
-                    this.isShowDialog = false;
+            reqOrganizationId({orgId: id}).then(res => {
+                this.isShowDialog = false;
                     //导航到 正式页面
                     this.$router.replace("/home");
-                },
-                fail: err => {
-                    if (err.errMsg) this.$message.error(err.errMsg);
+            }).catch(err => {
+                if (err.errMsg) this.$message.error(err.errMsg);
                     else this.$message.error("服务器发生异常");
-                },
-                complete: res => {
-                    this.loading = false;
-                }
-            });
-        }
+            }).finally( res => {
+                this.loading = false;
+            })
+        },
     },
     mounted() {}
 };

+ 92 - 20
src/views/groupManagment/GroupRecord.vue

@@ -1,35 +1,107 @@
 <template>
     <div class="GroupRecord">
-        <h1>群体档案</h1>
+        <header id="header">
+            <el-row type="flex">
+                <el-col :span="4">
+                    <el-select v-model="value" placeholder="请选择">
+                        <el-option label="item.label" value="item.value"></el-option>
+                        <el-option label="item.label" value="item.value"></el-option>
+                    </el-select>
+                </el-col>
+                <el-col :span="4">
+                    <el-select v-model="value" placeholder="请选择">
+                        <el-option label="item.label" value="item.value"></el-option>
+                        <el-option label="item.label" value="item.value"></el-option>
+                    </el-select>
+                </el-col>
+                <el-col :span="4">
+                    <el-select v-model="value" placeholder="请选择">
+                        <el-option label="item.label" value="item.value"></el-option>
+                        <el-option label="item.label" value="item.value"></el-option>
+                    </el-select>
+                </el-col>
+                <el-col :span="4">
+                    <el-button type="primary">查找</el-button>
+                </el-col>
+            </el-row>
+        </header>
+        <section>
+            <article class="table">
+                <el-table :data="tableData" border style="width: 100%">
+                    <el-table-column prop="date" sortable label="日期" width="180"></el-table-column>
+                    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
+                    <el-table-column prop="address" label="地址"></el-table-column>
+                    <el-table-column label="操作" width="150">
+                        <template slot-scope="scope">
+                            <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
+                            <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
+                                <el-button slot="reference" type="text" size="small">删除</el-button>
+                            </el-popconfirm>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <el-row type="flex" justify="end">
+                    <el-col :span="8" class="pagination">
+                        <el-pagination
+                            @current-change="pageChange"
+                            background
+                            layout="prev, pager, next"
+                            :total="1000"
+                        ></el-pagination>
+                    </el-col>
+                </el-row>
+            </article>
+        </section>
     </div>
 </template>
 
 <script>
-import { mapActions } from "vuex";
-
 export default {
-    name: "GroupRecord",
     data() {
-        return {};
+        return {
+            value: "",
+            tableData: [
+                {
+                    date: "2016-05-02",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1518 弄"
+                },
+                {
+                    date: "2016-05-04",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1517 弄"
+                },
+                {
+                    date: "2016-05-01",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1519 弄"
+                },
+                {
+                    date: "2016-05-03",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1516 弄"
+                }
+            ]
+        };
     },
     created() {},
     methods: {
-        ...mapActions(["fetch"]),
-        get() {
-            this.fetch({
-                api: "aaa",
-                method: "GET",
-                data: {},
-                success: res => {
-                    console.log(res);
-                },
-                fail: err => {
-                    console.log(err);
-                    if (err.errMsg) this.$message.error(err.errMsg);
-                    else this.$message.error("服务器发生异常");
-                }
-            });
+        edit(row) {},
+        del(row) {},
+        pageChange(p) {
+            console.log(p)
         }
     }
 };
 </script>
+
+<style lang="scss" scoped>
+#header {
+    margin-bottom: 15px;
+}
+.table {
+    .pagination {
+        margin-top: 20px;
+    }
+}
+</style>

+ 88 - 172
src/views/template/Aa.vue

@@ -1,191 +1,107 @@
 <template>
-    <div class="MessageServicMer">
-        <el-button @click="add" type="primary" icon="el-icon-document-add">添加</el-button>
-        <el-table :data="tableData" border style="width: 80%">
-            <el-table-column prop="id" label="服务商id" width="180"></el-table-column>
-            <el-table-column prop="name" label="服务商名" width="120"></el-table-column>
-            <el-table-column label="发送方式" width="100">
-                <template slot-scope="scope">
-                    <span v-for="item in sendMethodList" :key="item.code">
-                        <el-tag
-                            size="small"
-                            type="warning"
-                            v-if="scope.row.methodCode == item.code"
-                        >{{item.description}}</el-tag>
-                    </span>
-                </template>
-            </el-table-column>
-            <el-table-column label="操作" width="150">
-                <template slot-scope="scope">
-                    <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
-                    <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
-                        <el-button slot="reference" type="text" size="small">删除</el-button>
-                    </el-popconfirm>
-                </template>
-            </el-table-column>
-        </el-table>
-
-        <el-dialog :title="isAdd?'添加消息点':'编辑消息点'" :visible.sync="showDialog">
+    <div class="GroupRecord">
+        <header id="header">
             <el-row type="flex">
-                <el-col :span="14">
-                    <el-form ref="dyForm" :model="dyForm" :rules="rules" label-width="140px">
-                        <el-form-item label="服务商名:" prop="name">
-                            <el-input v-model="dyForm.name"></el-input>
-                        </el-form-item>
-                        <el-form-item label="服务商配置信息:">
-                            <el-input v-model="dyForm.info" type="textarea"></el-input>
-                        </el-form-item>
-                        <el-form-item label="发送方式">
-                            <el-select v-model="dyForm.methodCode" placeholder="请选择发送方式">
-                                <el-option
-                                    v-for="item in sendMethodList"
-                                    :label="item.description"
-                                    :value="item.code"
-                                    :key="item.code"
-                                ></el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item>
-                            <el-button @click="showDialog=false">取 消</el-button>
-                            <el-button type="primary" @click="submitForm('dyForm')">保 存</el-button>
-                        </el-form-item>
-                    </el-form>
+                <el-col :span="4">
+                    <el-select v-model="value" placeholder="请选择">
+                        <el-option label="item.label" value="item.value"></el-option>
+                        <el-option label="item.label" value="item.value"></el-option>
+                    </el-select>
+                </el-col>
+                <el-col :span="4">
+                    <el-select v-model="value" placeholder="请选择">
+                        <el-option label="item.label" value="item.value"></el-option>
+                        <el-option label="item.label" value="item.value"></el-option>
+                    </el-select>
+                </el-col>
+                <el-col :span="4">
+                    <el-select v-model="value" placeholder="请选择">
+                        <el-option label="item.label" value="item.value"></el-option>
+                        <el-option label="item.label" value="item.value"></el-option>
+                    </el-select>
+                </el-col>
+                <el-col :span="4">
+                    <el-button type="primary">查找</el-button>
                 </el-col>
             </el-row>
-        </el-dialog>
+        </header>
+        <section>
+            <article class="table">
+                <el-table :data="tableData" border style="width: 100%">
+                    <el-table-column prop="date" sortable label="日期" width="180"></el-table-column>
+                    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
+                    <el-table-column prop="address" label="地址"></el-table-column>
+                    <el-table-column label="操作" width="150">
+                        <template slot-scope="scope">
+                            <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
+                            <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
+                                <el-button slot="reference" type="text" size="small">删除</el-button>
+                            </el-popconfirm>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <el-row type="flex" justify="end">
+                    <el-col :span="8" class="pagination">
+                        <el-pagination
+                            @current-change="pageChange"
+                            background
+                            layout="prev, pager, next"
+                            :total="1000"
+                        ></el-pagination>
+                    </el-col>
+                </el-row>
+            </article>
+        </section>
     </div>
 </template>
-<script>
-import { mapActions } from "vuex";
-const rules = {
-    code: [{ required: true, message: "请输入消息点编码", trigger: "blur" }],
-    description: [
-        { required: true, message: "请输入消息点描述", trigger: "blur" }
-    ]
-};
 
+<script>
 export default {
-    name: "MessageServicMer",
     data() {
         return {
-            tableData: [],
-            showDialog: false,
-            dyForm: {
-                name: "",
-                info: "",
-                methodCode: ""
-            },
-            sendMethodList: "",
-            rules,
-            isAdd: true
-        };
-    },
-    created() {},
-    mounted() {
-        this.getMessageServicMer();
-        this.getSendMethodList();
-    },
-    methods: {
-        ...mapActions(["fetch"]),
-        // 获取消息点
-        getMessageServicMer() {
-            this.fetch({
-                api: "/message/provider/list",
-                method: "GET",
-                data: {},
-                success: res => {
-                    console.log(res);
-                    this.tableData = res;
-                },
-                fail: err => {
-                    console.log(err);
-                    if (err.errMsg) this.$message.error(err.errMsg);
-                    else this.$message.error("服务器发生异常");
-                }
-            });
-        },
-        // 获取发送方式
-        getSendMethodList() {
-            this.fetch({
-                api: "/message/method/list",
-                method: "GET",
-                data: {},
-                success: res => {
-                    this.sendMethodList = res;
-                    console.log("sssssssss")
-                    this.dyForm.methodCode = res[0].code;
-                    console.log(this.dyForm)
+            value: "",
+            tableData: [
+                {
+                    date: "2016-05-02",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1518 弄"
                 },
-                fail: err => {
-                    console.log(err);
-                    if (err.errMsg) this.$message.error(err.errMsg);
-                    else this.$message.error("服务器发生异常");
-                }
-            });
-        },
-        add() {
-            this.isAdd = true;
-            this.showDialog = true;
-            this.dyForm = {
-                code: null,
-                description: "",
-                remark: ""
-            };
-        },
-        edit(row) {
-            this.isAdd = false;
-            this.showDialog = true;
-            this.dyForm = row;
-        },
-        del(row) {
-            this.fetch({
-                api: "/message/point/delete",
-                method: "POST",
-                data: { id: row.id },
-                success: res => {
-                    console.log(res);
-                    this.getMessageServicMer();
-                    this.$message, success("删除成功!");
-                    // this.$message.success(res.msg);
+                {
+                    date: "2016-05-04",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1517 弄"
                 },
-                fail: err => {
-                    console.log(err);
-                    if (err.errMsg) this.$message.error(err.errMsg);
-                    else this.$message.error("服务器发生异常");
-                }
-            });
-        },
-        submitForm(formName) {
-            this.$refs[formName].validate(valid => {
-                if (valid) {
-                    console.log(this.dyForm);
-                    this.isAdd
-                        ? this.reqSave("/message/point/add")
-                        : this.reqSave("/message/point/update");
-                } else {
-                    return false;
-                }
-            });
-        },
-        // 请求 保存 (添加 和 更新)
-        reqSave(api) {
-            this.fetch({
-                api,
-                method: "POST",
-                data: this.dyForm,
-                success: res => {
-                    console.log(res);
-                    this.getMessageServicMer();
-                    this.$message.success("添加消息点成功!");
+                {
+                    date: "2016-05-01",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1519 弄"
                 },
-                fail: err => {
-                    console.log(err);
-                    if (err.errMsg) this.$message.error(err.errMsg);
-                    else this.$message.error("服务器发生异常");
+                {
+                    date: "2016-05-03",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1516 弄"
                 }
-            });
+            ]
+        };
+    },
+    created() {},
+    methods: {
+        edit(row) {},
+        del(row) {},
+        pageChange(p) {
+            console.log(p)
         }
     }
 };
 </script>
 
+<style lang="scss" scoped>
+#header {
+    margin-bottom: 15px;
+}
+.table {
+    .pagination {
+        margin-top: 20px;
+    }
+}
+</style>

+ 88 - 146
src/views/template/Ab.vue

@@ -1,165 +1,107 @@
 <template>
-    <div class="MessagePoint">
-        <el-button @click="add" type="primary" icon="el-icon-document-add">添加</el-button>
-        <el-table :data="tableData" border style="width: 60%">
-            <el-table-column prop="id" label="序号" width="120"></el-table-column>
-            <el-table-column prop="code" label="消息点编码" width="120" ></el-table-column>
-            <el-table-column label="消息点描述">
-                <template slot-scope="scope">
-                    <p>{{scope.row.description}}</p>
-                </template>
-            </el-table-column>
-            <el-table-column prop="remark" label="备注" ></el-table-column>
-            <el-table-column fixed="right" label="操作" width="150">
-                <template slot-scope="scope">
-                    <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
-                    <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
-                        <el-button slot="reference" type="text" size="small">删除</el-button>
-                    </el-popconfirm>
-                </template>
-            </el-table-column>
-        </el-table>
-
-        <el-dialog :title="isAdd?'添加消息点':'编辑消息点'" :visible.sync="showDialog">
+    <div class="GroupRecord">
+        <header id="header">
             <el-row type="flex">
-                <el-col :span="14">
-                    <el-form
-                        ref="dyForm"
-                        :model="dyForm"
-                        :rules="rules"
-                        label-width="100px"
-                        class="demo-dynamic"
-                    >
-                        <el-form-item label="消息点编码:" prop="code">
-                            <el-input v-model="dyForm.code"></el-input>
-                        </el-form-item>
-                        <el-form-item label="消息点描述:" prop="description">
-                            <el-input v-model="dyForm.description"></el-input>
-                        </el-form-item>
-                        <el-form-item label="备注:">
-                            <el-input type="textarea" v-model="dyForm.remark"></el-input>
-                        </el-form-item>
-                        <el-form-item>
-                            <el-button @click="showDialog=false">取 消</el-button>
-                            <el-button type="primary" @click="submitForm('dyForm')">保 存</el-button>
-                        </el-form-item>
-                    </el-form>
+                <el-col :span="4">
+                    <el-select v-model="value" placeholder="请选择">
+                        <el-option label="item.label" value="item.value"></el-option>
+                        <el-option label="item.label" value="item.value"></el-option>
+                    </el-select>
+                </el-col>
+                <el-col :span="4">
+                    <el-select v-model="value" placeholder="请选择">
+                        <el-option label="item.label" value="item.value"></el-option>
+                        <el-option label="item.label" value="item.value"></el-option>
+                    </el-select>
+                </el-col>
+                <el-col :span="4">
+                    <el-select v-model="value" placeholder="请选择">
+                        <el-option label="item.label" value="item.value"></el-option>
+                        <el-option label="item.label" value="item.value"></el-option>
+                    </el-select>
+                </el-col>
+                <el-col :span="4">
+                    <el-button type="primary">查找</el-button>
                 </el-col>
             </el-row>
-        </el-dialog>
+        </header>
+        <section>
+            <article class="table">
+                <el-table :data="tableData" border style="width: 100%">
+                    <el-table-column prop="date" sortable label="日期" width="180"></el-table-column>
+                    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
+                    <el-table-column prop="address" label="地址"></el-table-column>
+                    <el-table-column label="操作" width="150">
+                        <template slot-scope="scope">
+                            <el-button @click="edit(scope.row)" type="text" size="small">编辑</el-button>
+                            <el-popconfirm title="是否删除此设备的信息?" @onConfirm="del(scope.row)">
+                                <el-button slot="reference" type="text" size="small">删除</el-button>
+                            </el-popconfirm>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <el-row type="flex" justify="end">
+                    <el-col :span="8" class="pagination">
+                        <el-pagination
+                            @current-change="pageChange"
+                            background
+                            layout="prev, pager, next"
+                            :total="1000"
+                        ></el-pagination>
+                    </el-col>
+                </el-row>
+            </article>
+        </section>
     </div>
 </template>
-<script>
-import { mapActions } from "vuex";
-const rules = {
-    code: [{ required: true, message: "请输入消息点编码", trigger: "blur" }],
-    description: [
-        { required: true, message: "请输入消息点描述", trigger: "blur" }
-    ]
-};
 
+<script>
 export default {
-    name: "MessagePoint",
     data() {
         return {
-            tableData: [],
-            showDialog: false,
-            dyForm: {
-                code: null,
-                description: "",
-                remark: ""
-            },
-            rules,
-            isAdd: true
-        };
-    },
-    created() {},
-    mounted() {
-        this.getMessagePoint();
-    },
-    methods: {
-        ...mapActions(["fetch"]),
-        // 获取消息点
-        getMessagePoint() {
-            this.fetch({
-                api: "/message/point/list",
-                method: "GET",
-                data: {},
-                success: res => {
-                    console.log(res);
-                    this.tableData = res;
-                    // this.subDeviceList = res;
+            value: "",
+            tableData: [
+                {
+                    date: "2016-05-02",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1518 弄"
                 },
-                fail: err => {
-                    console.log(err);
-                    if (err.errMsg) this.$message.error(err.errMsg);
-                    else this.$message.error("服务器发生异常");
-                }
-            });
-        },
-        add() {
-            this.isAdd = true;
-            this.showDialog = true;
-            this.dyForm = {
-                code: null,
-                description: "",
-                remark: ""
-            }
-        },
-        edit(row) {
-            this.isAdd = false;
-            this.showDialog = true;
-            this.dyForm = row;
-        },
-        del(row) {
-            this.fetch({
-                api: "/message/point/delete",
-                method: "POST",
-                data: {id:row.id},
-                success: res => {
-                    console.log(res);
-                    this.getMessagePoint();
-                    this.$message,success("删除成功!")
-                    // this.$message.success(res.msg);
+                {
+                    date: "2016-05-04",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1517 弄"
                 },
-                fail: err => {
-                    console.log(err);
-                    if (err.errMsg) this.$message.error(err.errMsg);
-                    else this.$message.error("服务器发生异常");
-                }
-            });
-        },
-        submitForm(formName) {
-            this.$refs[formName].validate(valid => {
-                if (valid) {
-                    console.log(this.dyForm);
-                    this.isAdd
-                        ? this.reqSave("/message/point/add")
-                        : this.reqSave("/message/point/update");
-                } else {
-                    return false;
-                }
-            });
-        },
-        // 请求 保存 (添加 和 更新)
-        reqSave(api) {
-            this.fetch({
-                api,
-                method: "POST",
-                data: this.dyForm,
-                success: res => {
-                    console.log(res);
-                    this.getMessagePoint();
-                    this.$message.success('添加消息点成功!')
+                {
+                    date: "2016-05-01",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1519 弄"
                 },
-                fail: err => {
-                    console.log(err);
-                    if (err.errMsg) this.$message.error(err.errMsg);
-                    else this.$message.error("服务器发生异常");
+                {
+                    date: "2016-05-03",
+                    name: "王小虎",
+                    address: "上海市普陀区金沙江路 1516 弄"
                 }
-            });
+            ]
+        };
+    },
+    created() {},
+    methods: {
+        edit(row) {},
+        del(row) {},
+        pageChange(p) {
+            console.log(p)
         }
     }
 };
 </script>
 
+<style lang="scss" scoped>
+#header {
+    margin-bottom: 15px;
+}
+.table {
+    .pagination {
+        margin-top: 20px;
+    }
+}
+</style>

BIN
资料/猪联网.rar


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 7 - 0
资料/猪联网/data/document.js


+ 67 - 0
资料/猪联网/data/styles.css

@@ -0,0 +1,67 @@
+.ax_default {
+  font-family:'Arial Normal', 'Arial';
+  font-weight:400;
+  font-style:normal;
+  font-size:13px;
+  color:#333333;
+  text-align:center;
+  line-height:normal;
+}
+._一级标题 {
+  font-family:'Arial Normal', 'Arial';
+  font-weight:bold;
+  font-style:normal;
+  font-size:32px;
+  text-align:left;
+}
+._二级标题 {
+  font-family:'Arial Normal', 'Arial';
+  font-weight:bold;
+  font-style:normal;
+  font-size:24px;
+  text-align:left;
+}
+._三级标题 {
+  font-family:'Arial Normal', 'Arial';
+  font-weight:bold;
+  font-style:normal;
+  font-size:18px;
+  text-align:left;
+}
+._四级标题 {
+  font-family:'Arial Normal', 'Arial';
+  font-weight:bold;
+  font-style:normal;
+  font-size:14px;
+  text-align:left;
+}
+._五级标题 {
+  font-family:'Arial Normal', 'Arial';
+  font-weight:bold;
+  font-style:normal;
+  text-align:left;
+}
+._六级标题 {
+  font-family:'Arial Normal', 'Arial';
+  font-weight:bold;
+  font-style:normal;
+  font-size:10px;
+  text-align:left;
+}
+._文本段落 {
+  text-align:left;
+}
+.line {
+}
+.text_field {
+  color:#000000;
+  text-align:left;
+}
+.box_1 {
+}
+.icon {
+}
+._默认样式 {
+}
+._鼠标按下文本链接时 {
+}

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 7 - 0
资料/猪联网/files/index/data.js


+ 14 - 0
资料/猪联网/files/index/styles.css

@@ -0,0 +1,14 @@
+body {
+  margin:0px;
+  background-image:none;
+  position:static;
+  left:auto;
+  width:10px;
+  margin-left:0;
+  margin-right:0;
+  text-align:left;
+}
+#base {
+  position:absolute;
+  z-index:0;
+}

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 7 - 0
资料/猪联网/files/个体追踪/data.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 3289 - 0
资料/猪联网/files/个体追踪/styles.css


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 7 - 0
资料/猪联网/files/群体档案/data.js


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 7216 - 0
资料/猪联网/files/群体档案/styles.css


BIN
资料/猪联网/images/个体追踪/axhub-line-chart_u241.png


BIN
资料/猪联网/images/个体追踪/u156.png


BIN
资料/猪联网/images/个体追踪/u157.png


BIN
资料/猪联网/images/个体追踪/u158.png


BIN
资料/猪联网/images/个体追踪/u216.png


BIN
资料/猪联网/images/个体追踪/u217.png


BIN
资料/猪联网/images/个体追踪/u222.png


BIN
资料/猪联网/images/个体追踪/u223.png


BIN
资料/猪联网/images/个体追踪/u224.png


BIN
资料/猪联网/images/个体追踪/u227.png


BIN
资料/猪联网/images/个体追踪/u231.png


BIN
资料/猪联网/images/个体追踪/u232.png


BIN
资料/猪联网/images/个体追踪/u242.png


BIN
资料/猪联网/images/个体追踪/u247.png


BIN
资料/猪联网/images/群体档案/u0.png


BIN
资料/猪联网/images/群体档案/u1.png


BIN
资料/猪联网/images/群体档案/u109.png


BIN
资料/猪联网/images/群体档案/u110.png


BIN
资料/猪联网/images/群体档案/u111.png


BIN
资料/猪联网/images/群体档案/u113.png


BIN
资料/猪联网/images/群体档案/u114.png


BIN
资料/猪联网/images/群体档案/u136.png


BIN
资料/猪联网/images/群体档案/u136_mouseOver.png


BIN
资料/猪联网/images/群体档案/u22.png


BIN
资料/猪联网/images/群体档案/u31.png


BIN
资料/猪联网/images/群体档案/u32.png


BIN
资料/猪联网/images/群体档案/u39.png


BIN
资料/猪联网/images/群体档案/u40.png


BIN
资料/猪联网/images/群体档案/u42.png


BIN
资料/猪联网/images/群体档案/u44.png


BIN
资料/猪联网/images/群体档案/u46.png


BIN
资料/猪联网/images/群体档案/u53.png


BIN
资料/猪联网/images/群体档案/u59.png


BIN
资料/猪联网/images/群体档案/u60.png


BIN
资料/猪联网/images/群体档案/u61.png


BIN
资料/猪联网/images/群体档案/u96.png


BIN
资料/猪联网/images/群体档案/系统设置_u29.png


BIN
资料/猪联网/images/群体档案/首页_u28.png


+ 28 - 0
资料/猪联网/index.html

@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <title>index</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
+    <meta name="apple-mobile-web-app-capable" content="yes"/>
+    <link href="resources/css/jquery-ui-themes.css" type="text/css" rel="stylesheet"/>
+    <link href="resources/css/axure_rp_page.css" type="text/css" rel="stylesheet"/>
+    <link href="data/styles.css" type="text/css" rel="stylesheet"/>
+    <link href="files/index/styles.css" type="text/css" rel="stylesheet"/>
+    <script src="resources/scripts/jquery-1.7.1.min.js"></script>
+    <script src="resources/scripts/jquery-ui-1.8.10.custom.min.js"></script>
+    <script src="resources/scripts/prototypePre.js"></script>
+    <script src="data/document.js"></script>
+    <script src="resources/scripts/prototypePost.js"></script>
+    <script src="files/index/data.js"></script>
+    <script type="text/javascript">
+      $axure.utils.getTransparentGifPath = function() { return 'resources/images/transparent.gif'; };
+      $axure.utils.getOtherPath = function() { return 'resources/Other.html'; };
+      $axure.utils.getReloadPath = function() { return 'resources/reload.html'; };
+    </script>
+  </head>
+  <body>
+    <div id="base" class="">
+    </div>
+  </body>
+</html>

+ 135 - 0
资料/猪联网/plugins/debug/styles/debug.css

@@ -0,0 +1,135 @@
+#debugHost {
+    font-size: 12px;
+    color:#4a4a4a;
+    height: 100%;
+}
+
+#debugHostBtn a {
+    background: url('images/variables_on.png');
+    background: url('images/variables_on.svg'),linear-gradient(transparent, transparent);
+}
+
+.hashover #debugHostBtn a:hover {
+    background: url('images/variables_hover.png');
+    background: url('images/variables_hover.svg'),linear-gradient(transparent, transparent);
+}
+
+#debugHostBtn a.selected, #debugHostBtn a.selected:hover {
+    background: url('images/variables_off.png');
+    background: url('images/variables_off.svg'),linear-gradient(transparent, transparent);
+}
+
+#debugHeader .pageNameHeader {
+    padding-right: 0px;
+}
+
+#variablesClearLink {
+    display: inline-block;
+    margin-bottom: 15px;
+}
+
+#variablesClearLink:hover {
+    color: #0a6cd6;
+}
+
+#traceClearLink {
+    display: inline-block;
+    margin-bottom: 15px;
+}
+
+#traceClearLink:hover {
+    color: #0a6cd6;
+}
+
+#debugScrollContainer 
+{
+    overflow: auto;
+    width: 100%;
+    height: 100%;
+    -webkit-overflow-scrolling: touch;
+}
+
+#debugContainer {
+        padding: 10px 10px 10px 10px;
+}
+
+.variableName
+{
+	font-weight: bold;
+}
+
+.variableDiv
+{
+    margin-bottom: 20px;
+    line-height: 16px;
+
+}
+
+#variablesContainer {
+    padding-bottom: 5px;
+    /*overflow: auto;*/
+}
+
+#traceContainer {
+    padding-top: 15px;
+    /*padding: 0px 10px 10px 10px;*/
+}
+
+.debugToolbarButton 
+{
+	font-size: 1em;
+	color: #069;
+}
+
+.axEventBlock {
+    display: inline-block;
+    width: 100%;
+    margin: 5px 0px 5px 0px;
+    line-height: 21px;
+}
+
+/*a.axEventBlock:hover {
+    background-color: #069;
+    color: white;
+}*/
+
+.axTime {
+    margin: 0px 0px 0px 0px;
+    font-size: 11px;
+    color: #b1b3b5;
+}
+
+.axLabel {
+    margin: 0px 0px 5px 0px;
+    font-family: 'Trebuchet MS';
+    font-size: 14px;
+    font-weight: bold;
+}
+
+.lastAxEvent {
+    margin-bottom: 10px;
+    border-bottom: 1px solid #c2c2c2;
+    padding-bottom: 10px;
+}
+
+.axEvent {
+    margin: 0px 0px 5px 0px;
+    font-weight: bold;
+}
+
+.axCase {
+    margin: 0px 0px 5px 8px;
+    font-style: italic;
+}
+
+.axAction {
+    margin: 0px 0px 5px 13px;
+}
+
+#traceEmptyState.emptyStateContainer {
+    margin-top: 0px;
+}
+
+.debugLinksContainer {
+    text-align: right;
+}

+ 11 - 0
资料/猪联网/plugins/debug/styles/images/reset.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="14" height="14" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
+ <g id="Page-1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
+  <g id="refresh" sketch:type="MSArtboardGroup" fill="#4a4a4a">
+   <g sketch:type="MSLayerGroup" id="Shape">
+    <path d="M12.0002593,6.53352696 L12.0002593,6.53352696 C12.0002593,9.47472987 9.75656368,11.866805 7.00045379,11.866805 C5.36610095,11.866805 3.91598491,11.0262677 3.00333208,9.73070553 L4.50027875,8.13327801 L0,8.13327801 L0,12.9340802 L1.57681287,11.2518438 C2.86011747,12.9282714 4.81211995,14 7.00045379,14 C10.8659778,14 14,10.6574071 14,6.53333333 L12.0002593,6.53333333 L12.0002593,6.53352696 Z" sketch:type="MSShapeGroup"/>
+    <path d="M6.99972773,-8.8817842e-16 C3.13420374,-8.8817842e-16 0,3.34332115 0,7.46666667 L1.99992221,7.46666667 C1.99992221,4.52584507 4.24252875,2.13349928 6.99990924,2.13349928 C8.63262845,2.13349928 10.0843781,2.97334682 10.997394,4.26874098 L9.49990276,5.86654221 L14,5.86654221 L14,1.06771765 L12.4228241,2.74954235 C11.139701,1.07275132 9.1873355,-8.8817842e-16 6.99972773,-8.8817842e-16 Z" sketch:type="MSShapeGroup"/>
+   </g>
+  </g>
+ </g>
+</svg>

+ 11 - 0
资料/猪联网/plugins/debug/styles/images/reset_hover.svg

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="14" height="14" viewBox="0 0 14 14" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
+ <g id="Page-1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
+  <g id="refresh_hover" sketch:type="MSArtboardGroup" fill="#0069d9">
+   <g id="refresh" sketch:type="MSLayerGroup">
+    <path d="M12.0002593,6.53352696 L12.0002593,6.53352696 C12.0002593,9.47472987 9.75656368,11.866805 7.00045379,11.866805 C5.36610095,11.866805 3.91598491,11.0262677 3.00333208,9.73070553 L4.50027875,8.13327801 L0,8.13327801 L0,12.9340802 L1.57681287,11.2518438 C2.86011747,12.9282714 4.81211995,14 7.00045379,14 C10.8659778,14 14,10.6574071 14,6.53333333 L12.0002593,6.53333333 L12.0002593,6.53352696 Z" id="Shape" sketch:type="MSShapeGroup"/>
+    <path d="M6.99972773,-8.8817842e-16 C3.13420374,-8.8817842e-16 0,3.34332115 0,7.46666667 L1.99992221,7.46666667 C1.99992221,4.52584507 4.24252875,2.13349928 6.99990924,2.13349928 C8.63262845,2.13349928 10.0843781,2.97334682 10.997394,4.26874098 L9.49990276,5.86654221 L14,5.86654221 L14,1.06771765 L12.4228241,2.74954235 C11.139701,1.07275132 9.1873355,-8.8817842e-16 6.99972773,-8.8817842e-16 Z" id="Shape" sketch:type="MSShapeGroup"/>
+   </g>
+  </g>
+ </g>
+</svg>

BIN
资料/猪联网/plugins/debug/styles/images/variables_hover.png


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 12 - 0
资料/猪联网/plugins/debug/styles/images/variables_hover.svg


BIN
资料/猪联网/plugins/debug/styles/images/variables_off.png


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 12 - 0
资料/猪联网/plugins/debug/styles/images/variables_off.svg


BIN
资料/猪联网/plugins/debug/styles/images/variables_on.png


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 12 - 0
资料/猪联网/plugins/debug/styles/images/variables_on.svg


BIN
资料/猪联网/plugins/page_notes/styles/images/back.png


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 12 - 0
资料/猪联网/plugins/page_notes/styles/images/back.svg


BIN
资料/猪联网/plugins/page_notes/styles/images/back_hover.png


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 12 - 0
资料/猪联网/plugins/page_notes/styles/images/back_hover.svg


BIN
资料/猪联网/plugins/page_notes/styles/images/footnotes.png


+ 15 - 0
资料/猪联网/plugins/page_notes/styles/images/footnotes.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="13px" height="13px" viewBox="0 0 13 13" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
+    <!-- Generator: Sketch 3.5.2 (25235) - http://www.bohemiancoding.com/sketch -->
+    <title>note</title>
+    <desc>Created with Sketch.</desc>
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
+        <g id="note" sketch:type="MSArtboardGroup">
+            <rect id="Rectangle-40" fill="#4A4A4A" sketch:type="MSShapeGroup" x="0" y="0" width="13" height="13"></rect>
+            <path d="M2.81818182,4 L10.1818182,4 L11,4 L11,3 L10.1818182,3 L2.81818182,3 L2,3 L2,4 L2.81818182,4 L2.81818182,4 Z" id="Shape" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>
+            <path d="M2.81818182,7 L10.1818182,7 L11,7 L11,6 L10.1818182,6 L2.81818182,6 L2,6 L2,7 L2.81818182,7 L2.81818182,7 Z" id="Shape-Copy" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>
+            <path d="M2.81818182,10 L10.1818182,10 L11,10 L11,9 L10.1818182,9 L2.81818182,9 L2,9 L2,10 L2.81818182,10 L2.81818182,10 Z" id="Shape-Copy-2" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>
+        </g>
+    </g>
+</svg>

BIN
资料/猪联网/plugins/page_notes/styles/images/footnotes_hover.png


+ 15 - 0
资料/猪联网/plugins/page_notes/styles/images/footnotes_hover.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="13px" height="13px" viewBox="0 0 13 13" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
+    <!-- Generator: Sketch 3.5.2 (25235) - http://www.bohemiancoding.com/sketch -->
+    <title>note_hover</title>
+    <desc>Created with Sketch.</desc>
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
+        <g id="note_hover" sketch:type="MSArtboardGroup">
+            <rect id="Rectangle-40" fill="#138CDE" sketch:type="MSShapeGroup" x="0" y="0" width="13" height="13"></rect>
+            <path d="M2.81818182,4 L10.1818182,4 L11,4 L11,3 L10.1818182,3 L2.81818182,3 L2,3 L2,4 L2.81818182,4 L2.81818182,4 Z" id="Shape" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>
+            <path d="M2.81818182,7 L10.1818182,7 L11,7 L11,6 L10.1818182,6 L2.81818182,6 L2,6 L2,7 L2.81818182,7 L2.81818182,7 Z" id="Shape-Copy" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>
+            <path d="M2.81818182,10 L10.1818182,10 L11,10 L11,9 L10.1818182,9 L2.81818182,9 L2,9 L2,10 L2.81818182,10 L2.81818182,10 Z" id="Shape-Copy-2" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>
+        </g>
+    </g>
+</svg>

BIN
资料/猪联网/plugins/page_notes/styles/images/footnotes_on.png


+ 15 - 0
资料/猪联网/plugins/page_notes/styles/images/footnotes_on.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="13px" height="13px" viewBox="0 0 13 13" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
+    <!-- Generator: Sketch 3.5.2 (25235) - http://www.bohemiancoding.com/sketch -->
+    <title>note_on</title>
+    <desc>Created with Sketch.</desc>
+    <defs></defs>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
+        <g id="note_on" sketch:type="MSArtboardGroup">
+            <rect id="Rectangle-40" fill="#138CDE" sketch:type="MSShapeGroup" x="0" y="0" width="13" height="13"></rect>
+            <path d="M2.81818182,4 L10.1818182,4 L11,4 L11,3 L10.1818182,3 L2.81818182,3 L2,3 L2,4 L2.81818182,4 L2.81818182,4 Z" id="Shape" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>
+            <path d="M2.81818182,7 L10.1818182,7 L11,7 L11,6 L10.1818182,6 L2.81818182,6 L2,6 L2,7 L2.81818182,7 L2.81818182,7 Z" id="Shape-Copy" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>
+            <path d="M2.81818182,10 L10.1818182,10 L11,10 L11,9 L10.1818182,9 L2.81818182,9 L2,9 L2,10 L2.81818182,10 L2.81818182,10 Z" id="Shape-Copy-2" fill="#FFFFFF" sketch:type="MSShapeGroup"></path>
+        </g>
+    </g>
+</svg>

BIN
资料/猪联网/plugins/page_notes/styles/images/forward.png


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 12 - 0
资料/猪联网/plugins/page_notes/styles/images/forward.svg


BIN
资料/猪联网/plugins/page_notes/styles/images/forward_hover.png


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 12 - 0
资料/猪联网/plugins/page_notes/styles/images/forward_hover.svg


BIN
资料/猪联网/plugins/page_notes/styles/images/notes_hover.png


+ 9 - 0
资料/猪联网/plugins/page_notes/styles/images/notes_hover.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="25" height="29" viewBox="0 0 25 29" version="1.1" xmlns="http://www.w3.org/2000/svg">
+ <g id="Page-1" fill="none" fill-rule="evenodd">
+  <g id="notes_hover" fill="#c2c2c2">
+   <path d="M23.0173953,0 C24.1123577,0 25,0.894046985 25,1.98073526 L25,26.8366451 C25,27.930575 24.1102368,28.8173804 23.0173953,28.8173804 L1.98260467,28.8173804 C0.887642344,28.8173804 0,27.9233334 0,26.8366451 L0,1.98073526 C0,0.886805381 0.889763236,0 1.98260467,0 L23.0173953,0 Z M3,3 L22,3 L22,26 L3,26 L3,3 Z" id="Path"/>
+   <path d="M19,23 L19,21 L5,21 L5,23 L19,23 Z M19,18 L19,16 L5,16 L5,18 L19,18 Z M6.0989011,13 L11.9010989,13 L13,13 L13,11 L11.9010989,11 L6.0989011,11 L5,11 L5,13 L6.0989011,13 L6.0989011,13 Z M11.9010989,8.06681692 L13,8.06681692 L13,6.06681692 L11.9010989,6.06681692 L6.0989011,6.06681692 L5,6.06681692 L5,8.06681692 L6.0989011,8.06681692 L11.9010989,8.06681692 Z M15,6 L19,6 L19,13 L15,13 L15,6 Z" id="Notes-Icon"/>
+  </g>
+ </g>
+</svg>

BIN
资料/猪联网/plugins/page_notes/styles/images/notes_off.png


+ 9 - 0
资料/猪联网/plugins/page_notes/styles/images/notes_off.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="25" height="29" viewBox="0 0 25 29" version="1.1" xmlns="http://www.w3.org/2000/svg">
+ <g id="Page-1" fill="none" fill-rule="evenodd">
+  <g id="notes_off" fill="#62666b">
+   <path d="M23.0173953,0 C24.1123577,0 25,0.894046985 25,1.98073526 L25,26.8366451 C25,27.930575 24.1102368,28.8173804 23.0173953,28.8173804 L1.98260467,28.8173804 C0.887642344,28.8173804 0,27.9233334 0,26.8366451 L0,1.98073526 C0,0.886805381 0.889763236,0 1.98260467,0 L23.0173953,0 Z M3,3 L22,3 L22,26 L3,26 L3,3 Z" id="Path"/>
+   <path d="M19,23 L19,21 L5,21 L5,23 L19,23 Z M19,18 L19,16 L5,16 L5,18 L19,18 Z M6.0989011,13 L11.9010989,13 L13,13 L13,11 L11.9010989,11 L6.0989011,11 L5,11 L5,13 L6.0989011,13 L6.0989011,13 Z M11.9010989,8.06681692 L13,8.06681692 L13,6.06681692 L11.9010989,6.06681692 L6.0989011,6.06681692 L5,6.06681692 L5,8.06681692 L6.0989011,8.06681692 L11.9010989,8.06681692 Z M15,6 L19,6 L19,13 L15,13 L15,6 Z" id="Notes-Icon"/>
+  </g>
+ </g>
+</svg>

BIN
资料/猪联网/plugins/page_notes/styles/images/notes_on.png


+ 9 - 0
资料/猪联网/plugins/page_notes/styles/images/notes_on.svg

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="25" height="29" viewBox="0 0 25 29" version="1.1" xmlns="http://www.w3.org/2000/svg">
+ <g id="Page-1" fill="none" fill-rule="evenodd">
+  <g id="notes_on" fill="#ffffff">
+   <path d="M23.0173953,0 C24.1123577,0 25,0.894046985 25,1.98073526 L25,26.8366451 C25,27.930575 24.1102368,28.8173804 23.0173953,28.8173804 L1.98260467,28.8173804 C0.887642344,28.8173804 0,27.9233334 0,26.8366451 L0,1.98073526 C0,0.886805381 0.889763236,0 1.98260467,0 L23.0173953,0 Z M3,3 L22,3 L22,26 L3,26 L3,3 Z" id="Path"/>
+   <path d="M19,23 L19,21 L5,21 L5,23 L19,23 Z M19,18 L19,16 L5,16 L5,18 L19,18 Z M6.0989011,13 L11.9010989,13 L13,13 L13,11 L11.9010989,11 L6.0989011,11 L5,11 L5,13 L6.0989011,13 L6.0989011,13 Z M11.9010989,8.06681692 L13,8.06681692 L13,6.06681692 L11.9010989,6.06681692 L6.0989011,6.06681692 L5,6.06681692 L5,8.06681692 L6.0989011,8.06681692 L11.9010989,8.06681692 Z M15,6 L19,6 L19,13 L15,13 L15,6 Z" id="Notes-Icon"/>
+  </g>
+ </g>
+</svg>

+ 159 - 0
资料/猪联网/plugins/page_notes/styles/page_notes.css

@@ -0,0 +1,159 @@
+#pageNotesHost {
+    font-size: 12px;
+    color:#4a4a4a;
+    height: 100%;
+}
+
+#pageNotesHostBtn a {
+    background: url('images/notes_on.png');
+    background: url('images/notes_on.svg'),linear-gradient(transparent, transparent);
+}
+
+.hashover #pageNotesHostBtn a:hover {
+    background: url('images/notes_hover.png');
+    background: url('images/notes_hover.svg'),linear-gradient(transparent, transparent);
+}
+
+#pageNotesHostBtn a.selected, #pageNotesHostBtn a.selected:hover {
+    background: url('images/notes_off.png');
+    background: url('images/notes_off.svg'),linear-gradient(transparent, transparent);
+}
+
+#footnotesButton {
+    background: url('images/footnotes.png') no-repeat center center;
+    background: url('images/footnotes.svg') no-repeat center center,linear-gradient(transparent, transparent);
+}
+
+#footnotesButton:hover {
+    background: url('images/footnotes_hover.png') no-repeat center center;
+    background: url('images/footnotes_hover.svg') no-repeat center center,linear-gradient(transparent, transparent);
+}
+
+#footnotesButton.sitemapToolbarButtonSelected, #footnotesButton.sitemapToolbarButtonSelected:hover {
+    background: url('images/footnotes_on.png') no-repeat center center;
+    background: url('images/footnotes_on.svg') no-repeat center center,linear-gradient(transparent, transparent);
+}
+
+.nextPageButton {
+    background: url('images/forward.png') no-repeat center center;
+    background: url('images/forward.svg') no-repeat center center,linear-gradient(transparent, transparent);    
+}
+
+.nextPageButton:hover {
+    background: url('images/forward_hover.png') no-repeat center center;
+    background: url('images/forward_hover.svg') no-repeat center center,linear-gradient(transparent, transparent);    
+}
+
+.prevPageButton {
+    background: url('images/back.png') no-repeat center center;
+    background: url('images/back.svg') no-repeat center center,linear-gradient(transparent, transparent);    
+}
+
+.prevPageButton:hover {
+    background: url('images/back_hover.png') no-repeat center center;
+    background: url('images/back_hover.svg') no-repeat center center,linear-gradient(transparent, transparent);    
+}
+
+#pageNotesScrollContainer 
+{
+    overflow: auto;
+    width: 100%;
+    /*height: 100%;*/
+    -webkit-overflow-scrolling: touch;
+}    
+
+#pageNotesContainer 
+{
+    /*padding: 10px 10px 10px 12px;*/
+}
+
+#pageNotesContent 
+{
+	overflow: visible;
+}
+
+.pageNoteContainer 
+{
+    padding: 10px;
+}
+
+.pageNoteName 
+{
+    font-family: 'Trebuchet MS';
+	font-size: 14px;
+    font-weight: bold;
+	margin-bottom: 5px;
+	/*text-decoration: underline;*/
+	white-space: nowrap;
+}
+
+.pageNote 
+{
+    line-height: 21px;
+	/*margin-bottom: 20px;*/
+}
+
+.widgetNoteContainer {
+    padding: 10px;
+    border-bottom: 1px solid transparent;
+    border-top: 1px solid transparent;
+    cursor: pointer;
+}
+
+.widgetNoteContainerSelected {
+    background-color: white;
+    border-bottom: 1px solid #c2c2c2;
+    border-top: 1px solid #c2c2c2;
+}
+
+/*.widgetNoteContainer:hover {
+    background-color: white;
+    //border-bottom: 1px solid #c2c2c2;
+    //border-top: 1px solid #c2c2c2;
+}*/
+
+.widgetNoteFootnote {
+    display: inline-block;
+    /*vertical-align: top;
+    margin: 2px 5px 10px 0px;
+    padding: 1px 6px;
+    font-size: 10px;
+    color: #ffffff;
+    background-color: #0a6cd6;*/
+    width: 13px;
+    height: 12px;
+    padding-top: 1px;
+    text-align: center;
+    background-color: #138CDD;
+    /*-moz-box-shadow: 1px 1px 3px #aaa;
+    -webkit-box-shadow: 1px 1px 3px #aaa;
+    box-shadow: 1px 1px 3px #aaa;*/
+    font-size: 0px;
+    margin-right: 8px;
+}
+
+div.annnoteline {
+    display: inline-block;
+    width: 9px;
+    height: 1px;
+    border-bottom: 1px solid white;
+    margin-top: 1px;
+}
+
+.widgetNoteLabel {
+    display: inline-block;
+    vertical-align: top;
+    font-family: 'Trebuchet MS';
+	font-size: 14px;
+    font-weight: bold;
+	margin-bottom: 5px;    
+}
+
+.noteLink {
+    text-decoration: inherit;
+    color: inherit;
+}
+
+.noteLink:hover {
+    background-color: white;
+}

+ 479 - 0
资料/猪联网/plugins/recordplay/recordplay.js

@@ -0,0 +1,479 @@
+// use this to isolate the scope
+(function() {
+
+        if(!$axure.document.configuration.showRecordPlay) { return; }
+
+    $(window.document).ready(function() {
+        $axure.player.createPluginHost({
+            id: 'recordPlayHost',
+            context: 'interface',
+            title: 'Recording'
+        });
+        _generateRecordPlay();
+
+        $('#recordButton').click(_recordClick);
+        $('#playButton').click(_playClick);
+        $('#stopButton').click(_stopClick);
+        $('#deleteButton').click(_deleteClick);
+
+        // bind to the page load
+
+        $axure.page.bind('load.page_notes', function() {
+            
+            $.ajax({
+                type: "POST",
+                url: '/RecordController/ListRecordings',
+                success: function(response) {
+
+                    $('#recordNameHeader').html("");
+                    $('#recordPlayContent').html("");
+                    //populate the notes 
+                    
+                    axRecordingList = [];
+
+                    if(!eventList) {
+                        recordingIndex = 0;
+                        eventList = [];
+                        recordingStartTime = 0;
+                        bulkEventElement = "";
+                        lastBulkEvent = {};
+                    }
+
+                    for(var idx in response.recordingList) {
+                        getOneRecording(response.recordingList[idx]);
+                    }
+
+                    return false;
+                },
+                //                dataType: 'json'
+            });
+        });
+    });
+    
+    var nameMatcher = new RegExp("^axRecording[0-9]{4}$", "i");
+    var indexMatcher = new RegExp("[0-9]{4}$", "i");
+
+    var convertFromJson = function(oneRecording) {
+        
+        if(nameMatcher.exec(oneRecording.recordingName)) {
+            var myArray = indexMatcher.exec(oneRecording.recordingName);
+            var currIdx = parseInt(myArray);
+            if(recordingIndex < currIdx) {
+                recordingIndex = currIdx;
+            }
+        }
+        
+
+        for(var idx in oneRecording.eventList) {
+            var thisEvent = oneRecording.eventList[idx];
+                thisEvent.eventInfo = {};
+                            thisEvent.eventInfo.srcElement = thisEvent.elementID;
+                // TODO: check that this is correct.
+
+            if(isBulkMouse(thisEvent.eventType)) {
+                thisEvent.eventInfo.mousePositions = [];
+                thisEvent.eventInfo.mousePositions = thisEvent.mousePositions;
+                thisEvent.timeStamp = thisEvent.mousePositions[0].timeStamp;
+            }
+            if(isSingleMouse(thisEvent.eventType)) {
+                thisEvent.eventInfo.cursor = {};
+                thisEvent.eventInfo.cursor = thisEvent.cursor;
+                
+            }
+            if(thisEvent.eventType === 'OnDrag') {
+                thisEvent.eventInfo.dragInfo = {};
+                thisEvent.eventInfo.dragInfo = thisEvent.dragInfo;
+                thisEvent.timeStamp = thisEvent.dragInfo.startTime;
+            }
+
+        }
+        return oneRecording;
+    };
+
+    var getOneRecording = function(recordingItem) {
+        $.ajax({
+                type: "POST",
+                url: '/RecordController/GetRecording',
+                data: { 'recordingId': recordingItem.recordingId },
+            success: function(response) {
+                        axRecordingList[axRecordingList.length] = convertFromJson(response);
+                        var axRecordingContainer = $('#recordingContainer').find('li').filter('.recordingRootNode');
+                        axRecordingContainer.append(_formAxRecordingBranch(response));
+                        _attachEventTriggers(response);     
+            },                //                dataType: 'json'
+        });
+
+    };
+    
+    var axRecordingList;
+    var eventList;
+    var recordingIndex;
+    var recordingStartTime;
+    var recordingId;
+    var recordingName;
+
+
+    var leadingZeros = function(number, digits) { // because this thing doesn't have string.format (or does it?)
+        var recurseLeadingZeros = function(number, digitsLeft) {
+            if(digitsLeft > 0) {
+                return recurseLeadingZeros("0" + number, digitsLeft - 1);
+            } else {
+                return number;
+            }
+        };
+        return recurseLeadingZeros(number, digits - String(number).length);
+    };
+    
+
+    var generateRecordingName = function() {
+        return "axRecording" + leadingZeros(recordingIndex, 4);
+    };
+
+    var isSingleMouse = function(eventType) {
+        return (eventType === 'OnClick' ||
+            eventType === 'OnMouseUp' ||
+            eventType === 'OnMouseDown' ||
+            eventType === 'OnMouseOver' ||
+            eventType === 'OnKeyUp' ||
+            eventType === 'OnSelectedChange' ||
+            eventType === 'OnSelect' ||
+            eventType === 'OnUnselect' ||
+            eventType === 'OnTextChange' ||
+            eventType === 'OnMouseOut');
+    };
+
+    var isBulkMouse = function(eventType) {
+        return (eventType === 'OnMouseHover' ||
+            eventType === 'OnMouseMove');
+    };
+
+    var bulkEventElement;
+    var lastBulkEvent;
+
+
+    $axure.messageCenter.addMessageListener(function(message, eventData) {
+        var lastEvent, lastBulkData;
+        
+        if(message === 'logEvent') {
+            
+            if(bulkEventElement !== eventData.elementID) {
+                lastBulkEvent = {};
+                bulkEventElement = eventData.elementID;
+            }
+            
+            if(isBulkMouse(eventData.eventType)) {
+                lastEvent = lastBulkEvent[eventData.eventType];
+
+                if(lastEvent) {
+                    // this is the second or third or whatever onmousemove in a row
+                    lastBulkData = lastEvent.eventInfo.mousePositions;
+                    lastBulkData[lastBulkData.length] = {
+                        cursor: eventData.eventInfo.cursor,
+                        timeStamp: eventData.timeStamp
+                    };
+                } else {
+
+                    eventData.eventInfo.mousePositions = [];
+                    eventData.eventInfo.mousePositions[0] = {
+                        cursor: eventData.eventInfo.cursor,
+                        timeStamp: eventData.timeStamp
+                    };
+                    eventList[eventList.length] = eventData;
+                    lastBulkEvent[eventData.eventType] = eventData;
+                }
+            } else {
+                var z = true;
+            }
+            
+            if(isSingleMouse(eventData.eventType) ) {
+                eventList[eventList.length] = eventData;
+                lastBulkEvent = {};
+                bulkEventElement = eventData.elementID;
+            }
+
+            if(eventData.eventType === 'OnDrag') {
+
+                lastEvent = lastBulkEvent[eventData.eventType];
+                
+                if (lastEvent) {
+                    // this is the second or third or whatever onmousemove in a row
+                    lastBulkData = lastEvent.eventInfo.mousePositions;
+                    lastBulkData[lastBulkData.length] = {
+                        dragInfo: eventData.eventInfo.dragInfo,
+                        timeStamp: eventData.timeStamp
+                    };
+                } else {
+                    eventData.eventInfo.mousePositions = [];
+                    eventData.eventInfo.mousePositions[0] = {
+                        dragInfo: eventData.eventInfo.dragInfo,
+                        timeStamp: eventData.timeStamp
+                    };
+                    eventList[eventList.length] = eventData;
+                    lastBulkEvent[eventData.eventType] = eventData;
+                }
+            }
+//            if(eventData.eventType === 'OnKeyUp') {
+//                transmissionFields.eventInfo = eventData.eventInfo;
+//                $.ajax({
+//                    type: "POST",
+//                    url: '/RecordController/LogMouseClick',
+//                    data: transmissionFields,
+//                });
+//            }            
+        }
+
+    });
+    
+    
+    var _recordClick = function(event) {
+        $('#recordButton').addClass('recordPlayButtonSelected');
+        recordingIndex++;
+        //        $axure.recording.startRecord();
+
+        recordingStartTime = new Date().getTime();
+
+        $.ajax({
+            type: "POST",
+            url: '/RecordController/CreateRecording',
+            data: {
+                'recordingName': generateRecordingName(),
+                timeStamp: recordingStartTime
+            },
+            success: function(response) {
+                recordingId = response.recordingId;
+                recordingName = response.recordingName;
+        $axure.messageCenter.postMessage('startRecording', {'recordingId' : recordingId, 'recordingName': recordingName});
+            },
+            //                dataType: 'json'
+        });
+        
+    };
+
+    var _playClick = function(event) {
+        $('#playButton').addClass('recordPlayButtonSelected');
+    };
+
+    var _stopClick = function(event) {
+        var axRecording, axObjectDictionary, axRecordingContainer, transmissionFields;
+        $('#sitemapLinksContainer').toggle();
+        if($('#recordButton').is('.recordPlayButtonSelected')) {
+            $('#recordButton').removeClass('recordPlayButtonSelected');
+            //            $axure.recording.stopRecord();
+
+            axRecording = {
+                'recordingId' : recordingId,
+                'recordingName': recordingName,
+                'eventList': eventList
+            };
+            
+            axRecordingList[axRecordingList.length] = axRecording;
+            axRecordingContainer = $('#recordingContainer').find('li').filter('.recordingRootNode');
+            axRecordingContainer.append(_formAxRecordingBranch(axRecording));
+            _attachEventTriggers(axRecording);
+
+            lastBulkEvent = {};
+
+            var recordingStepList = [];
+
+            for(var eventListIdx in eventList) {
+                var eventListItem = eventList[eventListIdx];
+
+                if(eventListItem.eventType === 'OnDrag') {
+                    var lastDrag = eventListItem.eventInfo.mousePositions[eventListItem.eventInfo.mousePositions.length - 1].dragInfo;
+                    eventListItem.eventInfo.dragInfo.currentX = lastDrag.currentX;
+                    eventListItem.eventInfo.dragInfo.currentY = lastDrag.currentY;
+                    eventListItem.eventInfo.dragInfo.currentTime = lastDrag.currentTime;
+                    eventListItem.eventInfo.dragInfo.xDelta = eventListItem.eventInfo.dragInfo.currentX - eventListItem.eventInfo.dragInfo.lastX;
+                    eventListItem.eventInfo.dragInfo.yDelta = eventListItem.eventInfo.dragInfo.currentY - eventListItem.eventInfo.dragInfo.lastY;
+                    transmissionFields = {};
+                    transmissionFields = tackItOn(transmissionFields, eventListItem, ['eventType', 'elementID', 'path']);
+                    transmissionFields = tackItOn(transmissionFields, eventListItem.eventInfo, ['dragInfo']);
+                    transmissionFields.recordingId = recordingId;
+                }
+
+                if(isSingleMouse(eventListItem.eventType)) {
+                    transmissionFields = {};
+                    transmissionFields = tackItOn(transmissionFields, eventListItem, ['timeStamp', 'eventType', 'elementID', 'path']);
+                    transmissionFields = tackItOn(transmissionFields, eventListItem.eventInfo, ['cursor']);
+                    transmissionFields.recordingId = recordingId;
+                }
+
+                if(isBulkMouse(eventListItem.eventType)) {
+                    transmissionFields = {};
+                    transmissionFields = tackItOn(transmissionFields, eventListItem, ['eventType', 'elementID', 'path']);
+                    transmissionFields = tackItOn(transmissionFields, eventListItem.eventInfo, ['mousePositions']);
+                    transmissionFields.recordingId = recordingId;
+                }
+                recordingStepList[recordingStepList.length] = transmissionFields;
+            }
+
+            eventList = [];
+            $axure.messageCenter.postMessage('stopRecording', axObjectDictionary);
+
+            var jsonText = {
+                'recordingName': recordingName,
+                'recordingId': recordingId,
+                recordingStart: new Date().getTime(),
+                recordingEnd: recordingStartTime,
+                'eventList': recordingStepList
+            };
+
+            $.ajax({
+                type: "POST",
+                url: '/RecordController/StopRecording',
+                data: { 'jsonText': JSON.stringify(jsonText) }
+                
+            });
+
+        }
+
+        if($('#playButton').is('.recordPlayButtonSelected')) {
+            $('#playButton').removeClass('recordPlayButtonSelected');
+        }
+    };
+    
+    var _deleteClick = function(event) {
+        $.ajax({
+                type: "POST",
+                url: '/RecordController/DeleteRecordings',
+            success: function(response) {
+                var x = true;
+            },                //                dataType: 'json'
+        });
+    };
+
+    var tackItOn = function(destination, source, fields) {
+
+        for(var idx in fields) {
+            destination[fields[idx]] = source[fields[idx]];
+        }
+        return destination;
+    };
+
+    var makeFirstLetterLower = function(eventName) {
+        return eventName.substr(0, 1).toLowerCase() + eventName.substr(1);
+    };
+
+    var _attachEventTriggers = function(axRecording) {
+        for(var eventIdx in axRecording.eventList) {
+            var eventObject = axRecording.eventList[eventIdx];
+            var eventID = axRecording['recordingId'] + '_' + eventObject.timeStamp;
+            currentEvent = eventID;
+            $('#' + eventID).click(_triggerEvent(axRecording['recordingId'], eventObject.timeStamp));
+            //            $('#' + eventID).click(event.trigger);
+        }
+    };
+
+    var _formAxRecordingBranch = function(axRecording) {
+        var eventObject, eventID, RDOID;
+        var recordPlayUi = '<ul class="recordingTree">';
+        recordPlayUi += "<li class='recordingNode recordingExpandableNode'>";
+        recordPlayUi += '<div class="recordingContainer" style="margin-left:15px">';
+        recordPlayUi += '<a class="recordingPlusMinusLink"><span class="recordingMinus"></span></a>';
+        recordPlayUi += '<a class="recordingPageLink" nodeurl="home.html">';
+        recordPlayUi += '<span class="recordingPageIcon"></span>';
+        recordPlayUi += '<span class="recordingPageName">' + axRecording['recordingName'] + '</span>';
+        recordPlayUi += '</a>';
+
+        recordPlayUi += '<ul>';
+
+        for(eventID in axRecording.eventList) {
+
+            eventObject = axRecording.eventList[eventID];
+
+            recordPlayUi += '<li class="recordingNode recordingLeafNode">';
+            recordPlayUi += '<div class="recordingEventContainer" style="margin-left:44px">';
+            var eventID = axRecording['recordingId'] + '_' + eventObject.timeStamp;
+            recordPlayUi += '<a id="' + eventID + '" class="sitemapPageLink">';
+            recordPlayUi += 'Event ID: ' + eventID + '<br/>';
+
+            recordPlayUi += '<span class="sitemapPageIcon"></span>';
+            recordPlayUi += '<span class="sitemapPageName">';
+
+            recordPlayUi += 'elementID: ' + eventObject.elementID + '<br/>';
+            recordPlayUi += 'eventType: ' + eventObject.eventType + '<br/>';
+//            recordPlayUi += 'cursor: ' + eventObject.eventInfo.cursor.x + ',' + eventObject.eventInfo.cursor.y + '<br/>';
+
+            for(RDOID in eventObject.path) {
+                recordPlayUi += '/' + eventObject.path[RDOID];
+            }
+            recordPlayUi += '<br/>';
+            recordPlayUi += '</span>';
+            recordPlayUi += '</a>';
+            recordPlayUi += '</div>';
+            recordPlayUi += '</li>';
+        }
+
+        recordPlayUi += '</ul>';
+
+        recordPlayUi += '</div>';
+
+        recordPlayUi += "</li>";
+        recordPlayUi += "</ul>";
+
+        return recordPlayUi;
+    };
+
+    var currentEvent = '';
+
+    var _triggerEvent = function(axRecording, timeStamp) {
+        //            $axure.messageCenter.postMessage('triggerEvent', false);
+
+
+        for(var axRecordingIdx in axRecordingList) {
+            if(axRecordingList[axRecordingIdx].recordingId === axRecording) {
+                for(var eventIdx in axRecordingList[axRecordingIdx].eventList) {
+                    if(axRecordingList[axRecordingIdx].eventList[eventIdx].timeStamp === timeStamp) {
+
+                        var thisEvent = axRecordingList[axRecordingIdx].eventList[eventIdx];
+                        //                            thisEvent.trigger();
+
+                        var thisEventInfo, lowerEventType;
+                        lowerEventType = thisEvent.eventType.toLowerCase();
+                        if(lowerEventType === 'onclick' || lowerEventType === 'onmousein') {
+                            thisEventInfo = {};
+                            thisEventInfo = tackItOn(thisEventInfo, thisEvent.eventInfo, ['cursor', 'timeStamp', 'srcElement']);
+                            if(thisEvent.eventInfo.inputType) {
+                                thisEventInfo = tackItOn(thisEventInfo, thisEvent.eventInfo, ['inputType', 'inputValue']);
+                            }
+                        } else {
+                            thisEventInfo = thisEvent.eventInfo;
+                        }
+
+                        var thisParameters = {
+                            'element': thisEvent.elementID,
+                            'eventInfo': thisEventInfo,
+                            //                            'axEventObject': thisEvent.eventObject,
+                            'eventType': thisEvent.eventType
+                        };
+
+                        return function() {
+                            $axure.messageCenter.postMessage('playEvent', thisParameters);
+                        };
+
+                    }
+                }
+            }
+        }
+    };
+
+    var _generateRecordPlay = function() {
+        var recordPlayUi = "<div id='recordPlayContainer'>";
+
+        recordPlayUi += "<div id='recordPlayToolbar'>";
+
+        recordPlayUi += "<div style='height:30px;'>";
+
+        recordPlayUi += "<a id='recordButton' title='Start a Recording' class='recordPlayButton'></a>";
+        recordPlayUi += "<a id='playButton' title='Play Back a Recording' class='recordPlayButton'></a>";
+        recordPlayUi += "<a id='stopButton' title='Stop' class='recordPlayButton'></a>";
+        recordPlayUi += "<a id='deleteButton' title='Delete All Recordings' class='recordPlayButton'></a>";
+        recordPlayUi += "</div>";
+
+        recordPlayUi += "<div id='recordingContainer'><li class='recordingNode recordingRootNode'></li></div>";
+        recordPlayUi += "</div>";
+
+        $('#recordPlayHost').html(recordPlayUi);
+    };
+
+})();   

+ 89 - 0
资料/猪联网/plugins/recordplay/styles/recordplay.css

@@ -0,0 +1,89 @@
+#recordPlayHost {
+    font-size: 12px;
+    color:#333;
+    height: 100%;
+}
+
+
+#recordPlayContainer 
+{
+    overflow: auto;
+    width: 100%;
+    height: 100%;
+    padding: 10px 10px 10px 10px;
+}
+
+#recordPlayToolbar 
+{
+	margin: 5px 5px 5px 5px;
+    height: 22px;
+}
+
+#recordPlayToolbar .recordPlayButton
+{
+    float: left;
+    width: 22px;
+    height: 22px;
+    border: 1px solid transparent;
+}
+
+#recordPlayToolbar .recordPlayButton:hover
+{
+    border: 1px solid rgb(0,157,217);
+    background-color : rgb(166,221,242);
+}
+
+#recordPlayToolbar .recordPlayButton:active
+{
+    border: 1px solid rgb(0,157,217);
+    background-color : rgb(204,235,248);
+}
+
+#recordPlayToolbar .recordPlayButtonSelected {
+    border: 1px solid rgb(0,157,217);
+    background-color : rgb(204,235,248);    
+}
+
+#recordButton {
+    background: url('../../sitemap/styles/images/233_hyperlink_16.png') no-repeat center center;
+}
+
+#playButton {
+    background: url('../../sitemap/styles/images/225_responsive_16.png') no-repeat center center;
+}
+
+#stopButton {
+    background: url('../../sitemap/styles/images/228_togglenotes_16.png') no-repeat center center;
+}
+
+#deleteButton {
+    background: url('../../sitemap/styles/images/231_event_16.png') no-repeat center center;
+}
+
+#recordNameHeader
+{
+    /* yeah??*/
+	font-size: 13px;
+	font-weight: bold;
+	height: 23px;
+	white-space: nowrap;
+}
+
+#recordPlayContent 
+{
+    /* yeah??*/
+	overflow: visible;
+}
+
+.recordPlayName 
+{
+	font-size: 12px;
+	margin-bottom: 5px;
+	text-decoration: underline;
+	white-space: nowrap;
+}
+
+.recordPlay 
+{
+	margin-bottom: 10px;
+}

BIN
资料/猪联网/plugins/sitemap/styles/images/079_page_16.png


BIN
资料/猪联网/plugins/sitemap/styles/images/086_case_16.png


BIN
资料/猪联网/plugins/sitemap/styles/images/225_responsive_16.png


BIN
资料/猪联网/plugins/sitemap/styles/images/228_togglenotes_16.png


BIN
资料/猪联网/plugins/sitemap/styles/images/229_variables_16.png


BIN
资料/猪联网/plugins/sitemap/styles/images/231_event_16.png


BIN
资料/猪联网/plugins/sitemap/styles/images/232_search_16.png


BIN
资料/猪联网/plugins/sitemap/styles/images/233_hyperlink_16.png


BIN
资料/猪联网/plugins/sitemap/styles/images/235_folderclosed_16.png


BIN
资料/猪联网/plugins/sitemap/styles/images/236_folderopen_16.png


BIN
资料/猪联网/plugins/sitemap/styles/images/adaptivecheck.png


BIN
资料/猪联网/plugins/sitemap/styles/images/flow.png


+ 15 - 0
资料/猪联网/plugins/sitemap/styles/images/flow.svg

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg width="13" height="13" viewBox="0 0 13 13" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">
+ <g id="Page-1" fill="none" fill-rule="evenodd" sketch:type="MSPage">
+  <g id="flow" sketch:type="MSArtboardGroup">
+   <rect id="Rectangle-38" fill="#62666b" sketch:type="MSShapeGroup" x="1" y="10" width="3" height="3"/>
+   <rect id="Rectangle-38-Copy" fill="#62666b" sketch:type="MSShapeGroup" x="9" y="10" width="3" height="3"/>
+   <path d="M6.90806226,0.277785818 C8.60537484,1.36088413 12,3.52708074 12,3.52708074 L6.47274687,7 L1,3.52708074 L6.47274687,0 C6.47274687,0 6.76295713,0.185190545 6.90806226,0.277785818 Z" id="Shape" fill="#62666b" sketch:type="MSShapeGroup"/>
+   <path d="M7.33917705,2.07093789 C8.05945137,2.55245016 9.5,3.51547471 9.5,3.51547471 L6.48513465,5.5 L3.5,3.51547471 L6.48513465,1.5 C6.48513465,1.5 7.05449625,1.88062526 7.33917705,2.07093789 Z" id="Shape-Copy-3" fill="#ffffff" sketch:type="MSShapeGroup"/>
+   <path d="M2.45,9 L10.55,9 L11,9 L11,8 L10.55,8 L2.45,8 L2,8 L2,9 L2.45,9 L2.45,9 Z" id="Shape" fill="#62666b" sketch:type="MSShapeGroup"/>
+   <path d="M7,7.66666667 L7,6.33333333 L7,6 L6,6 L6,6.33333333 L6,7.66666667 L6,8 L7,8 L7,7.66666667 L7,7.66666667 Z" id="Shape" fill="#62666b" sketch:type="MSShapeGroup"/>
+   <path d="M3,10.6666667 L3,9.33333333 L3,9 L2,9 L2,9.33333333 L2,10.6666667 L2,11 L3,11 L3,10.6666667 L3,10.6666667 Z" id="Shape-Copy" fill="#62666b" sketch:type="MSShapeGroup"/>
+   <path d="M11,10.6666667 L11,9.33333333 L11,9 L10,9 L10,9.33333333 L10,10.6666667 L10,11 L11,11 L11,10.6666667 L11,10.6666667 Z" id="Shape-Copy-2" fill="#62666b" sketch:type="MSShapeGroup"/>
+  </g>
+ </g>
+</svg>

+ 0 - 0
资料/猪联网/plugins/sitemap/styles/images/folder_closed.png


Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott